将一列数据框与另一列匹配,拉入其他列,合并成大数据集

Match one column of data frame to another, pull in other columns, combine into large dataset

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

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

有什么想法吗? 谢谢!

编辑:我已经尝试了合并功能(即)total<-merged(CleanData,zipcode, by=zip) 但我收到一个错误,因为它们必须具有相同的列数?

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

Example datasets:

#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)

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

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