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

Merging data frames of different row length in R

您好,我一直在寻找解决方案。我确定答案很简单,但我一直在努力!

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

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 的类别中删除因素 class,尝试使用 rbind.fill.matrix 来代替...老实说,我对R,这给我带来了很多麻烦。我如何让 R 识别 ABCD 在数据帧中是相同的因素?

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