合并data.frame两个不同的长度和条件

时间:2017-12-12 14:15:44

标签: r

我正在尝试合并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。

我做错了什么?我认为合并可以在这里使用,有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

<{1}}来自left_join()包的功能应该有效。

dplyr