我正在尝试使用plyr库中的join,但我的列有不同的名称。我是按国家加入的。一个有国家和另一个国家(在案件上有所不同)。
命令
foo <- join(ie, geo, by="Country")
给了我这个错误:
[.data.frame
(x,by)中的错误:选择了未定义的列
如何修改by参数以连接两个不同的列名?
答案 0 :(得分:1)
根据文档,这似乎不可行。正如评论中所指出的,基函数merge
将使用by.x = "Country"
和by.y = "country"
处理此问题,但合并速度非常慢。我认为最好的选择是重命名其中一列(如果需要,可以在连接后更改名称)。
另请考虑使用dplyr
中的联接函数,这些函数比plyr
中的函数更快,例如
> system.time(x<-inner_join(baseball, baseball, by = "id"))
user system elapsed
0.037 0.000 0.037
> system.time(x<-join(baseball, baseball, by = "id"))
user system elapsed
0.943 0.002 0.945
>