【问题标题】:Merge data frames with missing values by its coordinate按坐标合并缺失值的数据框
【发布时间】:2016-10-06 19:09:27
【问题描述】:

我有一个非常简单的问题,但我想不通。我已经尝试了几个小时,之前阅读了Stackoverflow 的答案,但没有一个能直接解决我的问题。 我必须动态地将列附加到数据框。 假设我有:

df1 <- data.frame (c("a","b","c","d"))
df2 <- data.frame (c("aa", "bb", "ccc"))
df3 <- data.frame (c("aaa", "bbb"))
df4 <- data.frame (c("aaaa"))
df5 <- data.frame ()

请注意,它们都没有相同的行数,也没有主键值。其中一个是空的。 如何通过坐标将这 5 个数据帧合并到一个数据帧 df6 中,并用 N/A 填充缺失值?

更具体地说,我希望最终输出类似于:df6

a   aa  aaa aaaa N/A
b   bb  bbb N/A  N/A
c   cc  N/A N/A  N/A
d   N/A N/A N/A  N/A

【问题讨论】:

  • df3 &lt;- data.frame (c("aaa", "ccc")) 时的预期输出是什么?
  • 我已经在问题中写了预期的输出。这是df6
  • 请再次阅读以上评论。你想排列字母吗?如第一排,Bs 在第二排,等等?

标签: r dataframe merge


【解决方案1】:

您可以使用 rowr 包中的 cbind.fill 函数和 fill 选项作为 NA

library(rowr)
cbind.fill(df1, df2, df3, df4, df5, fill = NA)


1    a  aa    aaa  aaaa   NA
2    b  bb    bbb  <NA>   NA
3    c  ccc  <NA>  <NA>   NA
4    d  <NA> <NA>  <NA>   NA

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-27
    相关资源
    最近更新 更多