数据帧的R分位数给我“未选择的列选择”

时间:2014-01-17 05:01:53

标签: r dataframe

我创建了一个像这样的数据框:

> 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 

1 个答案:

答案 0 :(得分:7)

在功能quantile(x, ...)中 x应该是一个数字向量,你传递一个数据框。

如果您在分位数功能中使用数据框,那么您应该传递类似这样的内容

quantile(df$X1.20, 0.25)

其中X1.20是列名。

实际上,df[1]也是一个数据框,而不是矢量。