为什么常规子集可能不起作用?我想从data.table计算中位数:
> median(DT.UsersA3[,1])
Error in median.default(DT.UsersA3[, 1]) : need numeric data
它虽然是数字:
> class(DT.UsersA3$Timedif)
[1] "numeric"
使用虹膜数据框,它可以工作:
> median(iris[,3])
[1] 4.35
词法子集也有效......
> median(DT.UsersA3$Timedif)
[1] 422.046
答案 0 :(得分:0)
以下是iris
的示例:
library(data.table)
Iris <- data.table(iris)
median(Iris[,1])
# Error in median.default(Iris[, 1]) : need numeric data
Iris[,1] # is a data.table
Iris[,Sepal.Length] # is a vector
要使用列号,您可以按照Dason的评论:
Iris[[1]] # would return a vector
median(Iris[[1]]) # works