r - 如何连接2个数据帧,填充R中缺失的行值?

标签 r dataframe

我有两个数据框:

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

我想加入 uaub 上的两个数据帧,并添加 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/

相关文章:

将数字替换为相同位数的随机数

R dplyr : how to remove smaller groups?

r - dplyr 可以连接多个列或复合键吗?

r - Shiny:下载表格数据和绘图

删除ggplot2中geom_boxplot中的边框

Python 数据争论问题

python - 如何从 pd.dataframe 获取 bool 值 'True' 的坐标?

R:连接数据框并保留最新样本,不重复

python - Pandas:如何在数据帧的行和列上都有多重索引?

python - 如何将单元格中的值转换为 Pandas 中的新列?