【发布时间】:2021-07-14 17:22:57
【问题描述】:
我有几个用于创建地图的数据框。这些数据框每天更新,但只有部分行更新。因此,每个新数据帧仅包含原始数据帧的行子集。 第一个df包含空间信息
head(boxes)
Name lon lat
1 B1 -1.308810 51.76481
2 B10 -1.309306 51.76457
3 B100 -1.308591 51.76488
4 B101 -1.308725 51.76464
5 B102 -1.308454 51.76439
6 B103 -1.308270 51.76412
下一个 df 包含一些额外的信息
head(boxes0604)
Name Section lon lat State.code Clutch.size
1 B1 b -1.308810 51.76481 0 0
2 B10 b -1.309306 51.76457 1 0
3 B100 b -1.308591 51.76488 0 0
4 B101 b -1.308725 51.76464 0 0
5 B102 b -1.308454 51.76439 0 0
6 B103 b -1.308270 51.76412 0 0
我可以很容易地使用dplyr 和left_join 组合这些并绘制我的第一张地图
现在假设我在下一个数据帧 boxes0804 中仅获得了一些关于信息子集的新信息
head(boxes0804)
Name Section State.code Clutch.size
1 B108 b 0 4
2 B211 b 1 6
3 B219 b 4 12
4 B237 b 4 8
5 B287 b 4 7
6 B291 b 4 11
可以看到这个df不包含空间信息,只包含boxes0604中包含的部分行
为了将这个新信息绘制在来自boxes0604 的旧信息之上,我想做的是结合这些数据集以仅导入新信息并保留所有旧信息。当我尝试加入他们时,我会丢失新 df 的所有信息。可能是我错误地使用了join 函数。
提前致谢
【问题讨论】:
-
你试过其他的加入方法吗?喜欢
full_join来自dplyr -
都试过了,似乎都没有得到我想要的结果。它通常最终只保留所有旧信息而不添加新信息
-
如果你确定数据帧的顺序(当然还有行号),我建议你使用
merged <- cbind(old,new),如果你没有设置顺序,那么cbind他们全部跨度>