我正在尝试合并2个不同长度的data.frame。在没有相同的参考坐标(经度和纬度)的列值的位置,我想要NA。我正在使用合并,但结果不正确,我不知道我做错了什么。在第二个数据帧不具有相同坐标的列中应该有NA(或我预期),并且当两个data.frames中的坐标(列lon和lat)相同时保留值。 这些是我原始数据的简短示例:
#d1
lon lat MDA8O3
-17.0 32 79.32538
-16.6 32 79.36805
-16.2 32 79.36243
-15.8 32 79.36818
-15.4 32 79.36213
-15.0 32 79.34682
# d2
O3 lon lat
91.09123 13.8 48.50
93.46220 16.6 47.75
90.93342 15.8 48.75
93.77436 13.0 46.75
38.84968 11.8 47.25
93.88587 14.6 47.75
现在,我使用: df< - merge(d1,d2,by = c(“lon”,“lat”),all.x = T)
但是,结果不正确:
lon lat MDA8O3 O3
-17 32 79.32538 25.10291
-17 32 79.32538 52.06498
-17 32 79.32538 73.24021
-17 32 79.32538 31.79225
-17 32 79.32538 20.99357
-17 32 79.32538 24.55819
我也尝试,所有= T,这是不正确的。在列中,O3应该是那些与第一个data.frame的lon和lat不匹配的lon和lat中的NA。
我做错了什么?我认为合并可以在这里使用,有什么建议吗?
谢谢!
答案 0 :(得分:0)
left_join()
包的功能应该有效。
dplyr