【问题标题】:Match one column of data frame to another, pull in other columns, combine into large dataset将数据框的一列与另一列匹配,拉入其他列,组合成大数据集
【发布时间】:2017-07-20 21:15:45
【问题描述】:

我在 2 列数字向量(在 R 中)中有一个商店 ID 及其邮政编码列表。我正在使用“邮政编码”包 (https://cran.rproject.org/web/packages/zipcode/zipcode.pdf) 并可以访问这些邮政编码的经度/纬度坐标。 zipcode 包有一个数据框,其中包含所有邮政编码的每个邮政编码、城市、州以及经度和纬度(作为一个大数据框)。

我正在寻找我的邮政编码的经度和纬度坐标,并将它们添加为第 3 列和第 4 列(即商店 ID、邮政编码、经度、纬度)

有什么想法吗? 谢谢!

编辑:我已经尝试了合并功能(即)total

【问题讨论】:

    标签: r match zipcode


    【解决方案1】:

    作为by 参数传递的列名必须用引号引起来。在此示例中,合并中不需要 by 参数,if 邮政编码是两个数据框中唯一的公共列。

    示例数据集:

    #cleanData
    d1<-tibble::tribble(~z,~id,131,1,114,2,155,5)
    
    #zipcode
    d2<-
    tibble::tribble(~z,~x,~y,131,2,5,166,2,6,162,6,5,177,7,1,114,2,1,155,5,9)
    
    result <- merge(d1,d2)
    

    给予

           z id x y
        1 114  2 2 1
        2 131  1 2 5
        3 155  5 5 9
    

    您可以通过简单地使用 dplyr::select() 从结果数据框中删除任何不必要的列。假设您不需要列 y(例如,可能是州名)

    result <- dplyr::select(result, z, id, x)
    

    【讨论】:

      【解决方案2】:

      最终使用了这个:How to join (merge) data frames (inner, outer, left, right)?

      基本上我使用了 Left Outer 函数,因为我想将所有邮政编码保留在我的商店数据库中。我相信上面的答案会消除在第二个邮政编码列表中找不到的邮政编码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-11
        • 2018-06-25
        • 2021-10-28
        • 1970-01-01
        • 2019-01-20
        • 1970-01-01
        相关资源
        最近更新 更多