首页 文章

在R [重复]中按组计算唯一值

提问于
浏览
1

这个问题在这里已有答案:

我有一个如下所示的数据集:

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 ?)谢谢!

1 回答

  • 2

    我们可以使用 uniqueN 来自 data.table . 将'data.frame'转换为'data.table'( setDT(df1) ),按'group'和'timepoint'分组,获取'SID'( uniqueN(SID)unique 元素的长度 .

    library(data.table)
     setDT(df1)[, .(UnSID=uniqueN(SID)), .(group, timepoint)]
    

相关问题