我一直在寻找一个错误地标记为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
方法是什么?
答案 0 :(得分:3)
“我们不需要小偷小摸。” #经典电影参考
我认为您必须具有某种概念上的障碍才能理解[.data.table
函数第二个自变量位置的“真正力量”。您只需放置要评估的表达式。由于prop.table需要一个表对象,因此必须首先使用table
函数构造一个对象:
mydata2[ , prop.table(table(Improved)) ]
Improved
None Some Marked
0.5000000 0.1666667 0.3333333
我确实注意到返回的值是不是一个data.table对象。