按列和行合并多个数据框

时间:2020-09-12 16:10:27

标签: r database dataframe merge

我创建了如下数据框

test <- data.frame(ID = c(rep(1:60, each =11)), time = (c(rep(0:10))), resp = NA, liver = NA)

我想将其与resp_test数据框中的每个对应IDtime的其他数据框(例如,名为test的数据框)合并。

ID  time   resp  
1       0 51
1       1 22
1       2 74
1       3 32
1       4 23
1       5 21
1       6 12
1       7 84
1       8 21
1       9 92
1       10 78

但是,并非resp_test中的所有ID都具有time变量上的完整(0-> 10)resp数据,就像这样。请注意,缺少变量time = 4以及time = 7到time = 10的数据。

    ID          time resp
1   13072516    2   NA
2   12964437    3   7.2
3   12964437    3   0.8
4   12964437    5   14.4
5   12964437    5   1.6
6   12964437    6   20.7
7   12964437    6   2.3
8   12964437    7   45.0
9   12964437    7   5.0
10  12964437    7   22.5
11  12964437    7   2.5
12  13115001    0   28.8
13  13115001    0   22.3

我尝试过 merge(test, resp_test, by = "time"),但我得到的只是一个空数据框。

任何解决此问题的技巧将不胜感激。

2 个答案:

答案 0 :(得分:2)

尝试

library(dplyr)
left_join(test, resp_test, by = "time")

答案 1 :(得分:2)

要同时合并IDtime,您应该执行以下操作:

library(dplyr)

test %>% 
  select(-resp) %>% 
  left_join(resp_test, by = c("ID", "time"))