首页 > 解决方案 > 找出一个唯一值在多个文件中出现的次数以及这些文件的数量

问题描述

我在下面有这 3 个数据框:

Name<-c("jack","jack","bob","david","mary")
n1<-data.frame(Name)

Name<-c("jack","bill","dean","mary","steven")
n2<-data.frame(Name)

Name<-c("fred","alex","mary")
n3<-data.frame(Name)

我想创建一个包含 3 列的新数据框。第 1 列中的所有 3 个源文件中存在的所有唯一名称、第 2 列中它所在的源文件的数量以及该名称的实例总数文件,在第 3 列中。

结果应该是这样的

Name Number_of_files Number_of_instances
1   jack               2                   3
2    bob               1                   1
3  david               1                   1
4   mary               3                   3
5   bill               1                   1
6   dean               1                   1
7 steven               1                   1
8   fred               1                   1
9   alex               1                   1

有没有一种自动化的方法可以一次实现所有这些?

标签: r

解决方案


一种dplyr可能是:

bind_rows(n1, n2, n3, .id = "ID") %>%
 group_by(Name) %>%
 summarise(Number_of_files = n_distinct(ID),
           Number_of_instances = n())

  Name   Number_of_files Number_of_instances
  <chr>            <int>               <int>
1 alex                 1                   1
2 bill                 1                   1
3 bob                  1                   1
4 david                1                   1
5 dean                 1                   1
6 fred                 1                   1
7 jack                 2                   3
8 mary                 3                   3
9 steven               1                   1

推荐阅读