R - Excel VLOOKUP等效 - 查找,替换

时间:2014-06-03 10:20:10

标签: r vlookup

我几乎无处不在,无法找到答案; R等价于Excel上的VLOOKUP。 VLOOKUP允许我在整个列中查找特定值并将其应用于数据框的每一行。

在这种情况下,我想找到特定城市所在的国家/地区(来自数据库),并在新列中返回国家/地区的名称。

所以我有这个数据库:

countries <- c("UK", "US", "RUS")
cities <- c("LDN", "NY", "MOSC")
db <- cbind(countries, cities)
db
      countries cities
[1,] "UK"      "LDN" 
[2,] "US"      "NY"  
[3,] "RUS"     "MOSC"

想要根据上面的数据库找到这些城市所在的国家(替换NA):

df
     countries cities
[1,]   NA      "LDN" 
[2,]   NA      "NY"  
[3,]   NA     "MOSC"

我完全不知道如何在R上进行此操作。

2 个答案:

答案 0 :(得分:7)

您正在执行 join ,其中R使用函数merge执行

merge(db, df)

使用dplyr包允许更自然的动词:

library(dplyr)
inner_join(db, df)

或者(如果您希望显示非匹配项;有关详细信息,请参阅?left_join):

left_join(db, df)

答案 1 :(得分:2)

这是另一种方法:

library(qdapTools)
df[, 1] <- df[, 2] %l% db[, 2:1]