在R中合并不同行长度的数据框

3

你好,我已经寻找解决方案有一段时间了。我相信答案很简单,但我在这里烦恼了很久!

我有两个数据框,它们非常相似(实际上一个代表更完整的数据集)。它们都有两列,一列包含字符串值作为因子,另一列包含数值。

df.A看起来像这样:

Category     Number
A            1
B            2
C            3
D            4

df.B看起来像这样

Category     Number
A            5
B            6
C            7

这些类别(ABCD)在两个数据框中都很常见。为了使 df.B 具有类别 D 并带有 NA 或 0 值(我正在处理百分比,因此 NA 或 0 都可以),我的代码如下:

proto <- df.A
proto$number <- NULL
df.B <- rbind.fill(proto,df.B)

我的想法是,这将为类别D添加第四行,并赋予NA值,但结果却是:
Category     Number
A             NA
B             NA
C             NA
D             NA
NA            5
NA            6
NA            7

我尝试从df.A和df.B的category中删除factor类,尝试使用rbind.fill.matrix。老实说,我对R非常陌生,这让我很困扰。我该如何使R认识到ABCD在数据框中是同一因子?


5
具有讽刺意味的是,您在问题标题中已经有“merge”这个词了:)您需要使用merge(df.A,df.B,by='Category',all=T) - Marat Talipov
1
@MaratTalipov 看起来问题已经解决了!谢谢你。 - Andrew
@DavidArenburg 我想像我这样的初学者在尝试简单的解决方案之前会试图跳到更复杂的解决方案...我猜我还有很多要学习的:P - Andrew
1个回答

2
您可以通过使用merge来实现所需的结果:
merge(df.A,df.B,by='Category',all=T)

这将产生以下输出:
#  Category Number.x Number.y
#1        A        1        5
#2        B        2        6
#3        C        3        7
#4        D        4       NA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接