在 data.table 中计算百分比摘要
Calculate percentage summaries in data.table
如果这是我的数据集:
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')
的记录
dt[,.N,by=list(area,score)][,perc:=100*N/sum(N),by=area][,.SD]
和dcast.data.table如果你需要
如果这是我的数据集:
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')
的记录dt[,.N,by=list(area,score)][,perc:=100*N/sum(N),by=area][,.SD]
和dcast.data.table如果你需要