2014-06-18 49 views
3

我想從plyr庫中使用連接,但我的列有不同的名稱。我按國家加入。一個國家和另一個國家(情況不同)。如何在不同名稱的列上使用連接?

命令

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

給了我這個錯誤:

Error in [.data.frame (x, by) : undefined columns selected

我如何修改由參數加入兩個不同的列名?

+3

隨着基礎R'merge'功能,您可以選擇'by.x'和'by.y'或者重命名你的列並繼續使用'join'。 – stanekam

回答

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 
> 
相關問題