gpt4 book ai didi

r - 合并多列R

转载 作者:行者123 更新时间:2023-12-03 21:21:45 25 4
gpt4 key购买 nike

如果这不是重复的,我很惊讶,但我在其他任何地方都找不到答案。

我有两个数据框,data1data2 , 一列不同,但其余列相同。我想将它们合并到一个唯一的识别列中,id .但是,如果 ID 来自 data2data1 中没有匹配项, 我想要 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)

关于r - 合并多列R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53242350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com