如何在data.table中获取prop.table?

时间:2019-01-12 17:08:02

标签: r data.table

我一直在寻找一个错误地标记为data.table的问题。此处:prop.table() error in r 我正在寻找比例表,但是到目前为止,我还没有碰到运气。这是示例数据和代码:

library(data.table)
data(Arthritis,package="vcd")
#mytable<-with(Arthritis,table(Improved))
#mytable
mydata2<-copy(Arthritis)
setDT(mydata2)
head(mydata2)
mydata2[,.(.N),by=.(Improved)]
mydata2[,lapply(.N,sum),by=.(Improved)]

这将产生:

   Improved V1
1:     Some 14
2:     None 42
3:   Marked 28

我认为简单地像这样进行链接会有所帮助,但它会返回有趣的输出:

mydata2[,lapply(.N,sum),by=.(Improved)][,prop:=V1/sum(V1)]

获取比例表的简单的独占data.table方法是什么?

1 个答案:

答案 0 :(得分:3)

“我们不需要小偷小摸。” #经典电影参考

我认为您必须具有某种概念上的障碍才能理解[.data.table函数第二个自变量位置的“真正力量”。您只需放置要评估的表达式。由于prop.table需要一个表对象,因此必须首先使用table函数构造一个对象:

mydata2[ , prop.table(table(Improved)) ]
Improved
     None      Some    Marked 
0.5000000 0.1666667 0.3333333 

我确实注意到返回的值是不是一个data.table对象。