首页 > 解决方案 > 如何在 data.table 中获取 prop.table?

问题描述

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

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获取比例表的简单方法是什么?

标签: rdata.table

解决方案


“我们不需要任何steenking计数。” # 经典电影参考

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

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

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


推荐阅读