我几乎无处不在,无法找到答案; 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上进行此操作。
答案 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]