我有一个如下所示的数据集:
SID group timepoint
5402 A 0
5402 B 0
5402 C 1
5403 A 0
25403 B 1
25403 C 1
我想计算每组x时间点有多少个唯一的SID。 到目前为止,我一直在手工制作组合,如下所示:
length(unique(subset(df, timepoint=='0' & group=='A')$SID))
length(unique(subset(df, timepoint=='0' & group=='B')$SID))
...
有没有办法使用分组函数给我一张包含所有计数的表格? (例如by
或tapply
?)
谢谢!
答案 0 :(得分:2)
我们可以使用uniqueN
中的data.table
。转换' data.frame'到' data.table' (setDT(df1)
),按'分组'和' timepoint',获取' SID'的unique
元素的长度。 (uniqueN(SID)
)。
library(data.table)
setDT(df1)[, .(UnSID=uniqueN(SID)), .(group, timepoint)]