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

sta*_*010 2 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 ...
Run Code Online (Sandbox Code Playgroud)

现在,我想计算一个分位数,但我收到一个错误,说"选择了未定义的列".我该怎么做才能解决这个问题?

> 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
Run Code Online (Sandbox Code Playgroud)

另一方面,如果我的数据是向量,则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 
Run Code Online (Sandbox Code Playgroud)

Sun*_*nny 7

在函数quantile(x, ...) x中应该是一个数字向量,你传递一个数据帧.

如果你在分位数函数中使用数据框,那么你应该传递这样的东西

quantile(df$X1.20, 0.25)
Run Code Online (Sandbox Code Playgroud)

X1.20列名称在哪里.

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