【发布时间】:2015-02-27 18:06:03
【问题描述】:
我认为说明这一点的最佳方式是通过示例。
I have my primary dataset:
ID ColA ColB ColC ColE
2 Leaf Dirt 1
4 Plant Rock 2
1 Tree Mountain 3
9 Grass Boulder 4
5 Weed Dust 5
12 Sky A
11 Cloud B
6 Blue C
7 Atmosphere D
8 White E
然后我想将我的主要数据集与第二个数据集结合起来
ID ColA ColB ColD
6 2x2 11x1 11
7 3x3 16x6 12
8 6x6 17x7 13
11 8x8 18x8 14
12 0x0 19x9 15
最终结果应该是
ID ColA ColB ColC ColE ColD
2 Leaf Dirt NA 1 NA
4 Plant Rock NA 2 NA
1 Tree Mountain NA 3 NA
9 Grass Boulder NA 4 NA
5 Weed Dust NA 5 NA
12 0x0 19x9 Sky A 15
11 8x8 18x8 Cloud B 14
6 2x2 11x1 Blue C 13
7 3x3 16x6 Atmosphere D 12
8 6x6 17x7 White E 11
我不关心 ID 的排序方式,但我想保持主数据集的列名的顺序相同。第二个数据集中的所有列与主数据集的列名不同,都将转到主数据集的最右侧,如带有 ColD 的示例所示。
每次我尝试编写合并函数时,我最终都会得到各种实际上并没有合并在一起的重复、双精度或列。
如您所见,这两个数据集在某些方面都是不完整的,有什么好的方法可以将两者合并?
谢谢。
编辑:LukeA 你的解决方案给了我这个:
ID ColA ColB ColC ColE ColD
2 Leaf Dirt 1 NA
4 Plant Rock 2 NA
1 Tree Mountain 3 NA
9 Grass Boulder 4 NA
5 Weed Dust 5 NA
12 Sky A NA
11 Cloud B NA
6 Blue C NA
7 Atmosphere D NA
8 White E NA
6 2x2 11x1 NA NA 11
7 3x3 16x6 NA NA 12
8 6x6 17x7 NA NA 13
11 8x8 18x8 NA NA 14
12 0x0 19x9 NA NA 15
【问题讨论】:
-
试试
plyr::rbind.fill(df1, df2)。 -
感谢您的回复。它没有按预期工作,请参阅我为显示该代码行的结果所做的编辑。
-
啊,现在我明白了……太快了。