合并R中不同行长的数据帧

时间:2015-02-04 17:08:59

标签: r plyr

您好我一直在寻找解决方案。我确定答案很简单,但我一直在把头发拉出来!

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

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得到一个带有NA或0值的类别D(我正在使用百分比,因此无论是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上从类别中删除因子类,尝试使用rbind.fill.matrix而不是......说实话我对R很新,这给了我很多麻烦。如何让R识别ABCD是跨数据帧的相同因素?

1 个答案:

答案 0 :(得分:3)

您可以使用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