在数据框中构建新列。替换有0行,数据有X.

时间:2017-01-16 23:08:09

标签: r

我有一个美国邮政编码的数据框,我正在尝试从zipcodes数据库附加一个包含州和城市的新列,并且似乎无法解决以下错误。我尝试了很多方法,但总是在同一个地方。

Data

lUsers$Zip <- as.character( lUsers$Zip )
lUsers$city <- filter( zipcode, zip ==  lUsers$Zip )$city

这会产生以下错误。 enter image description here

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

这一行:

lUsers$city <- filter( zipcode, zip ==  lUsers$Zip )$city

会尝试将lUsers中的相应行与zipcode行进行比较,就像执行zipcode$zip == lUsers$Zip一样,即逐个元素。

您可能想要进行左连接,例如:

lUsers = left_join(lUsers, zipcode, c("zip"="Zip"))

zipcode中的行与lUsers的行匹配并添加列。删除之后不需要的列。

答案 1 :(得分:0)

不运行,但请尝试:

citystate <- zipcode[ , c(1:3)]
for (i in 1:nrow(lUsers){
for (j in 1:nrow(citystate)) {
if (lUsers[i, 5] == citystate[j, 1])
lUsers[i, 6] <- citystate[j, 2]
}
}

重复以通过将最后一行更改为以获取状态:     lUsers [i,7]&lt; - citystate [j,3]

希望这个建议不是一个luser !!大声笑。