Я удивлен, если это не дубликат, но я не мог найти ответ где-либо еще.
У меня есть два фрейма данных, data1
и data2
, которые отличаются в одном столбце, но остальные столбцы одинаковы. Я хотел бы объединить их в уникальный идентификационный столбец id
. Однако, если у идентификатора data2
нет совпадения в data1
, я хочу, чтобы запись в data2
добавлялась внизу, аналогично plyr::rbind.fill()
, а не переименовывала все соответствующие столбцы в data2 как column1.x
и column1.y
. Я понимаю, что это не самое ясное объяснение, может быть, мне не следует работать в субботу. Вот код для создания двух фреймов данных и желаемый результат:
spp1 <- c('A','B','C')
spp2 <- c('B','C','D')
trait.1 <- rep(1.1,length(spp1))
trait.2 <- rep(2.0,length(spp2))
id_1 <- c(1,2,3)
id_2 <- c(2,9,7)
data1 <- data.frame(spp1,trait.1,id_1)
data2 <- data.frame(spp2,trait.2,id_2)
colnames(data1) <- c('spp','trait.1','id')
colnames(data2) <- c('spp','trait.2','id')
Желаемый вывод:
spp trait.1 trait.2 id
1 A 1.1 NA 1
2 B 1.1 2 2
3 C 1.1 NA 3
4 C NA 2 9
5 D NA 2 7