如何在具有不同名称的列上使用连接?

时间:2014-06-18 23:04:57

标签: r plyr

我正在尝试使用plyr库中的join,但我的列有不同的名称。我是按国家加入的。一个有国家和另一个国家(在案件上有所不同)。

命令

foo <- join(ie, geo, by="Country")

给了我这个错误:

  

[.data.frame(x,by)中的错误:选择了未定义的列

如何修改by参数以连接两个不同的列名?

1 个答案:

答案 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 
>