为什么两者都相同时得到不同的答案?

时间:2018-02-07 16:51:59

标签: r for-loop data-science data-cleaning

当我尝试使用ggmap库中存在的地理编码功能来获取纬度和经度时,两者都会得到不同的结果。但是,当我检查" dd"在两个案例中都有变量列表,但为什么第二个输出中的输出不同。想知道为什么?

for(i in 1:3)
{
result <- geocode(df1$states[i],output="latlona", source = "google")
dd$lon[i] <- as.numeric(result[1])
dd$lat[i] <- as.numeric(result[2])
dd$geoAddress[i] <- as.character(result[3])
}

enter image description here

for(i in 1:3)
{
result <- geocode(df1$states[i],output="latlona", source = "google")
dd$lon[i] <- result[i,1]
dd$lat[i] <- result[i,2]
dd$geoAddress[i] <- result[i,3]
}

enter image description here

1 个答案:

答案 0 :(得分:0)

问题是,第二个代码与第一个代码不同。如果你看到,第二个代码将为第一个迭代生成与第一个代码相同的输出。但是对于第二次迭代,result [i,1]无效,因为output是只有一行的data.frame。因此,选择不存在的第二行(您通过结果[i,1],其中i = 2),将NA作为输出。您可以在R:

中输入这个简单的代码来尝试自己
library(ggmap)
geocode("Delhi", output = "latlona", source = "google")[2,1]

输出为NA。 希望这会有所帮助。