2017-04-11 456 views
0

为什么常规子集化可能无效?我想从一个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

看一看'DT.UsersA3 [,1]' - 这是一个'data.table' – jogo

回答

0

这里是t他举例与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 

使用的列的数量,您可以按照从达诚注释:

Iris[[1]] # would return a vector 
median(Iris[[1]]) # works 
+0

这给出了它不工作的原因,但不是如何工作。 – Dason

+1

虹膜[[1]]会返回第一列的矢量,并应提供一个答案 – Dason

+0

你走了,谢谢! – Nachospt