【问题标题】:Calculate percentage summaries in data.table计算 data.table 中的百分比汇总
【发布时间】:2019-03-19 19:33:39
【问题描述】:

如果这是我的数据集:

library(data.table)    
dt <- data.table(
  record=c(1:20),
  area=rep(LETTERS[1:4], c(4, 6, 3, 7)), 
  score=c(1,1:3,2:3,1,1,1,2,2,1,2,1,1,1,1,1:3),
  cluster=c("X", "Y", "Z")[c(1,1:3,3,2,1,1:3,1,1:3,3,3,3,1:3)]
)

使用data.table 计算百分比摘要的最佳方法是什么:

prop.table(table(dt$area, dt$score), 1)*100

但是,我还希望此摘要的输入具有更大的灵活性。例如,仅包括属于集群“X”或集群“Y”和“Z”的记录)

【问题讨论】:

    标签: r data.table summarize


    【解决方案1】:
    dt[,.N,by=list(area,score)][,perc:=100*N/sum(N),by=area][,.SD]
    

    如果需要,还有 dcast.data.table

    【讨论】:

    • 不错的答案。仅供参考,尾随 [, .SD] 不需要/没有效果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    相关资源
    最近更新 更多