通过匹配r中的id来突变数据帧

时间:2015-03-10 17:21:03

标签: r plyr dplyr mutated

我有三个数据框:

DF1:

id score1
1   50
2   23
3   40
4   68
5   82
6   38

DF2:

id score2
1   33
2   23
4   64
5   12
6   32

DF3:

id score3
1   50
2   23
3   40
4   68
5   82

我想将这三个分数变为这样的数据帧,使用NA来表示缺失值

id score1 score2 score3
1   50     33     50
2   23     23     23
3   40     NA     40
4   68     64     68
5   82     12     82
6   38     32     NA

或者像这样,删除NA值:

id score1 score2 score3
1   50     33     50
2   23     23     23
4   68     64     68
5   82     12     82

但是,mutate(在dplyer中)不会占用不同的长度。所以我不能改变。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

你可以尝试

  Reduce(function(...) merge(..., by='id'), list(df1, df2, df3))
  #   id score1 score2 score3
  #1  1     50     33     50
  #2  2     23     23     23
  #3  4     68     64     68
  #4  5     82     12     82

如果您有许多带有模式的数据集对象名称' df'其次是数字

  Reduce(function(...) merge(..., by='id'), mget(paste0('df',1:3)))

或者代替paste0('df', 1:3),您可以使用@ {DavidArenburg评论的ls(pattern='df\\d+')

相关问题