我是R的新手,我在如何使用经验累积分布函数方面遇到了一些麻烦。
我有一个包含100k值的CSV文件(从excel导出),我这样导入:
MyData <- read.csv(file="test.csv", header=TRUE, sep=",")
这似乎没问题,但是当我输入
时P = ecdf(MyData)
我收到错误:
Error in `[.data.frame`(x, order(x, na.last = na.last, decreasing = decreasing)) :
undefined columns selected
我注意到MyData[1]
输出了我的所有值并尝试过
P = ecdf(MyData[1])
但是我得到同样的错误。
我已经四处搜索了,似乎错误在很多场景中突然出现,所以我无法找到确切的问题,任何帮助都会很好,因为我非常新对此。
答案 0 :(得分:1)
您应该使用ecdf(MyData[, 1])
或ecdf(MyData[[1]])
,因为ecdf
需要数字向量作为输入。当您使用MyData[1]
时,R将打印所有值,但它是数据帧,而不是矢量。
从ecdf
帮助文件中,您可以读取x
,ecdf的输入应为数字向量。
答案 1 :(得分:1)
至少在我阅读ecdf
时,输入是一个向量。因此,您需要通过指定列来传递数据框中的向量。您可以通过执行P <- ecdf(MyData$col1)
来执行此操作,其中col1是该因子的名称,或者以数字方式执行此操作:P <- ecdf(MyData[,1]
,它将数据子集设置到第1列的所有行。