中位数:需要数字数据

时间:2017-04-11 18:06:04

标签: r subset median

为什么常规子集可能不起作用?我想从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

1 个答案:

答案 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