r - 如何在 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
获取比例表的简单方法是什么?
解决方案
“我们不需要任何steenking计数。” # 经典电影参考
我认为您必须有某种概念障碍才能理解[.data.table
函数的第二个参数位置的“真正力量”。您只需放置一个要评估的表达式。由于 prop.table 需要一个表对象,因此您必须首先使用以下table
函数构造一个:
mydata2[ , prop.table(table(Improved)) ]
Improved
None Some Marked
0.5000000 0.1666667 0.3333333
我确实注意到返回的值不是data.table 对象。