在R中按计数合并数据帧

时间:2015-12-14 12:27:20

标签: r merge subset

下面有两个数据框。

set.seed(12345)

df1 <- data.frame(
  y1 = sample(rep(c(0:1),length.out = 50)),
  y2 = sample(rep(c(0:1),length.out = 50)),
  y3 = sample(rep(c(0:1),length.out = 50)),
  y4 = sample(rep(c(0:1),length.out = 50)),
  y5 = sample(rep(c(0:1),length.out = 50)),
  y6 = sample(rep(c(0:1),length.out = 50))
)

df2 <- data.frame(x = c("y1","y2","y1:y2","y2:y3:y4","y5","y6"))

我想合并这两个数据框,但合并的结果将显示每个元素的“1”的计数。我的另一个问题是,在第二个数据框中,有些列有多个以“:”分隔的元素。这将使我很难自动执行此操作。以下是我想要实现的表格

        x count
1       y1    25
2       y2    25
3    y1:y2    11
4 y2:y3:y4     8
5       y5    25
6       y6    25

1 个答案:

答案 0 :(得分:6)

我们可以得到&#39; df1&#39;与git reset --hard <hash>。确定&#39; x&#39;的元素。使用colSums的{​​{1}}。然后,我们:&#39; x&#39;基于索引(&#39; i1&#39;)的列,&#39; df1&#39;每个grep元素中的列,splitlist一起使用,以便当同一行中的所有元素均为1时,我们只获得Reduce。获取& ,并创建&#39;计数&#39;基于&#39; v1&#39;的列对象创建。

TRUE