温馨提示:本文翻译自stackoverflow.com,查看原文请点击:r - How to count occurrence of a value across multiple data frames
r

r - 如何跨多个数据帧计数值的出现

发布于 2020-03-27 10:18:25

我有一些看起来像这样的数据框:

df1 <- data.frame(Id=c(1,2,3,4),a=c(66,64,54,65)) 
df2 <- data.frame(Id=c(2,7,4,6),a=c(70,74,71,54))
df3 <- data.frame(Id=c(9,11,1,2),a=c(67,53,55,73))

df1

  Id  a
1  1 66
2  2 64
3  3 54
4  4 65

df2
  Id  a
1  2 70
2  7 74
3  4 71
4  6 54

df3
   Id  a
 1  9 67
 2 11 53
 3  1 55
 4  2 73

我想知道什么代码可以让我计算出所有三个数据帧中每个ID值的出现。

我理想的输出如下所示:

 ID  Count
  1    2
  2    3
  3    1
  4    2
  7    1
  6    1
  9    1
  11   1

查看更多

查看更多

提问者
T.2001
被浏览
207
akrun 2019-07-03 21:43

我们可以用 rbindlist

library(data.table)
rbindlist(mget(paste0("df", 1:3)))[, .N, Id]\
#   Id N
#1:  1 2
#2:  2 3
#3:  3 1
#4:  4 2
#5:  7 1
#6:  6 1
#7:  9 1
#8: 11 1