【发布时间】:2022-11-18 09:39:34
【问题描述】:
我有一个包含下一列 (df1) 的数据框:
| Codes | Oxy | Date |
|---|---|---|
| 100095 | 30% | 1 |
| 100096 | 50% | 1 |
| 100097 | 20% | 1 |
| 100095 | 40% | 2 |
| 100096 | 10% | 2 |
| 100097 | 20% | 2 |
另一个包含我想合并的附加数据 (df2):
| Code1 | Code2 | Spp |
|---|---|---|
| 100095 | 345550 | Sz |
| 104568 | 100096 | Cg |
| 983488 | 100097 | As |
这第二个 df 有额外的信息,但行数不同。如您所见,代码相似但并不总是来自同一列。然后,我想做的是合并两个 df,但说“Codes”=“Code1”或“Code2”。如果代码与两列之一相似,则应合并该行上的其余数据。
我试过:
df3<-merge(x = df1, y = df2, all.x = TRUE)
但它只将所有额外数据复制到每一行而不考虑代码。 希望我解释一下我的自我,非常感谢你。
我希望将 spp 变量添加到两个 df 之间具有相同代码的每一行,但考虑 df2 中的两个代码列之一。
【问题讨论】:
-
你好,Eduardo,为什么不尝试以这种方式重复 df2:
df2 <- rbind(data.frame(Codes=df2$Code1, df2[,-1:-2]), data.frame(Codes=df2$Code2, df2[,-1:-2]))然后合并结果?