我创建了一个这样的数据框:
> 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)
在函数quantile(x, ...)
x中应该是一个数字向量,你传递一个数据帧.
如果你在分位数函数中使用数据框,那么你应该传递这样的东西
quantile(df$X1.20, 0.25)
Run Code Online (Sandbox Code Playgroud)
X1.20列名称在哪里.
实际上,df[1]也是一个数据框,而不是矢量.