我创建了一个像这样的数据框:
> df <- data.frame(1:20)
> str(df)
'data.frame': 20 obs. of 1 variable:
$ X1.20: int 1 2 3 4 5 6 7 8 9 10 ...
现在,我想计算一个分位数,但是我收到一个错误,说“选择了未定义的列”。我该怎么做才能解决这个问题?
> quantile(df, 0.25)
Error in `[.data.frame`(x, order(x, na.last = na.last, decreasing = decreasing)) :
undefined columns selected
> quantile(df[1], 0.25)
Error in `[.data.frame`(x, order(x, na.last = na.last, decreasing = decreasing)) :
undefined columns selected
另一方面,如果我的数据是向量,则quantile()可以正常工作。是什么给了什么?
> v <- 1:20
> str(v)
int [1:20] 1 2 3 4 5 6 7 8 9 10 ...
> quantile(v, 0.25)
25%
5.75
答案 0 :(得分:7)
在功能quantile(x, ...)
中
x应该是一个数字向量,你传递一个数据框。
如果您在分位数功能中使用数据框,那么您应该传递类似这样的内容
quantile(df$X1.20, 0.25)
其中X1.20
是列名。
实际上,df[1]
也是一个数据框,而不是矢量。