【发布时间】:2018-07-07 11:40:17
【问题描述】:
这个问题被标记为重复,但我想对我的问题的答案表示赞同。另一个中提供的解决方案不足以满足我的目的(我尝试了它们但收效甚微),而且它们还依赖于看似细微且不必要的软件包。我感谢用户 Stewart Ross 对我的问题提供的答案,因为他们能够使用一个非常简单的解决方案来回答这个问题,该解决方案使用广泛使用且非常熟悉的包 (dplyr)
有人提出了类似的问题,这似乎很简单,但我找到的所有答案都已经产生了我已经得到的答案。 我似乎无法在两个数据框中保留所有唯一的行值。在我的情况下,我有两个数据框,我通过键列“代码”进行合并。但是,df1 来自前一年,因此它具有“代码”,即在 df2 中找不到的旧代码。同样,df2 具有 df1 中没有的新代码。
所以让我们假设它们看起来像这样:
df1
Code Value1
A 10
B 20
C 50
df2
Code Value2
A 30
D 40
E 60
使用我当前使用的代码 df3
所以我得到的是:
df3
Code Value1 Value2
A 10 30
D n.a. 40
E n.a. 60
如果我只关心代表今年的“代码”,那就没问题了。 我想要的输出保留了上一年的旧代码。我希望 df3 类似于以下内容:
df3
Code Value1 Value2
A 10 30
B 20 n.a.
C 50 n.a.
D n.a. 40
E n.a. 60
所以我的问题是我有两个具有不同代码的数据框,我想将它们合并在一起,同时保留所有代码。我无法通过使用 left_join、rbind 或子集来完成此操作。
任何帮助将不胜感激!
【问题讨论】:
标签: r dataframe merge dplyr left-join