我有两个数据框:
df1
ua ub a b c
1 11 12 1 1 0
2 12 13 2 2 2
3 13 14 1 1 1
4 14 15 1 1 1
5 15 16 1 1 1
6 16 17 1 1 1
df2
ua ub a b c d e f
1 11 12 1 1 0 1 1 1
2 14 15 1 1 1 1 1 1
3 16 17 1 1 1 1 1 1
4 12 13 2 2 2 2 2 2
我想加入 ua
和 ub
上的两个数据帧,并添加 df2
中而不是 df1< 中的列
到 df1
上,并用 0
“填充”缺失的行。
这将给出:
ua ub a b c d e f
1 11 12 1 1 0 1 1 1
2 12 13 2 2 2 2 2 2
3 13 14 1 1 1 0 0 0
4 14 15 1 1 1 1 1 1
5 15 16 1 1 1 0 0 0
6 16 17 1 1 1 1 1 1
我可以通过执行以下操作获取 df2
中而不是 df1
中的列名称:
setdiff(names(df2), names(df1))
但是我对如何合并/连接剩余的结果有点困惑。
我看了这个q here但运气不好让它对我有用。
在 Pandas Python 中,我可以将 merge
与 .ffill()
结合使用,但我不确定如何将其转换为 R。我该怎么做?
感谢您的帮助。
最佳答案
假设您想要保留 df1
而不是 df2
的所有情况。下面可以使用
library(dplyr)
df3 <- left_join(df1, df2)
df3[is.na(df3)] <- 0
如果需要 df1
以及 df2
的所有情况,则将上面的 left_join
替换为 full join
代码
关于r - 如何连接2个数据帧,填充R中缺失的行值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47814856/