合并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
您好,我一直在寻找解决方案。我确定答案很简单,但我一直在努力!
我有两个相似的数据框(实际上一个代表更完整的数据集)。它们都有两列,一列包含作为因子的字符串值,一列包含数值。
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