我创建了如下数据框
test <- data.frame(ID = c(rep(1:60, each =11)), time = (c(rep(0:10))), resp = NA, liver = NA)
我想将其与resp_test
数据框中的每个对应ID
和time
的其他数据框(例如,名为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")
,但我得到的只是一个空数据框。
任何解决此问题的技巧将不胜感激。
答案 0 :(得分:2)
尝试
library(dplyr)
left_join(test, resp_test, by = "time")
答案 1 :(得分:2)
要同时合并ID
和time
,您应该执行以下操作:
library(dplyr)
test %>%
select(-resp) %>%
left_join(resp_test, by = c("ID", "time"))