簡體   English   中英

在多列R上合並

[英]merging on multiple columns R

如果這不是重復的內容,我感到很驚訝,但是我找不到其他地方的答案。

我有兩個數據幀data1data2 ,它們在同一列中不同,但其余各列相同。 我想將它們合並在唯一的標識列id 但是,如果data2中的ID在data1中不匹配,我希望將data2的條目添加到底部,類似於plyr::rbind.fill()而不是將data2中的所有對應列重命名為column1.xcolumn1.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

嘗試這個:

library(dplyr)

full_join(data1, data2, by = c("id", "spp"))

輸出:

  spp trait.1 id trait.2
1   A     1.1  1      NA
2   B     1.1  2       2
3   C     1.1  3      NA
4   C      NA  9       2
5   D      NA  7       2

或者,也可以merge

merge(data1, data2, by = c("id", "spp"), all = TRUE)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM