我正在与data.table
. 从data.table
对象中选择一列很容易:
> head(data.table(mtcars)[,2])
cyl
1: 6
2: 6
3: 4
4: 6
5: 8
6: 6
但是尝试在ecdf
调用中使用此语法选择列会产生错误:
> ecdf(data.table(mtcars)[,2])(data.table(mtcars)[,2])
[.data.frame
(x, i)中的错误:选择了未定义的列
有人可以解释一下为什么吗?
务实地,解决此问题的一种方法是:
> ecdf(data.table(mtcars)[[2]])(data.table(mtcars)[[2]])
[1] 0.56250 0.56250 0.34375 0.56250 1.00000 0.56250 1.00000 0.34375 0.34375 0.56250 0.56250 1.00000 1.00000 1.00000 1.00000 1.00000
[17] 1.00000 0.34375 0.34375 0.34375 0.34375 1.00000 1.00000 1.00000 1.00000 0.34375 0.34375 0.34375 1.00000 0.56250 1.00000 0.34375
但我想了解上述行为。