我有以下数据集:
longitude latitude
NA NA
NA NA
NA NA
NA NA
-73.77384042 40.64582098
NA NA
NA NA
NA NA
NA NA
NA NA
我使用以下代码转换lat&很长时间使用以下代码获取位置:
tweets1.df$textAddress <- mapply(FUN = function(lon, lat) revgeocode(c(lon, lat)), tweets1.df$longitude, tweets1.df$latitude)
但是我收到以下错误:Error: is.numeric(location) && length(location) == 2 is not TRUE
请让我知道我哪里出错。
答案 0 :(得分:0)
这应该有效:
options(digits=16)
indices <- which(complete.cases(tweets1.df[,1:2]))
tweets1.df$textAddress <- NA
tweets1.df[indices,]$textAddress <- mapply(FUN = function(lon, lat)
revgeocode(c(lon, lat)),
tweets1.df[indices,]$longitude,
tweets1.df[indices,]$latitude)
tweets1.df
longitude latitude textAddress
1 NA NA <NA>
2 NA NA <NA>
3 NA NA <NA>
4 NA NA <NA>
5 -73.77384042 40.64582098 Terminal 5, Jamaica, NY 11430, USA
6 NA NA <NA>
7 NA NA <NA>
8 NA NA <NA>
9 NA NA <NA>
10 NA NA <NA>
您也可以尝试这一点,对评论中建议的内容进行一些修改:
tweets1.df$textAddress <- apply(tweets1.df, 1, function(x){print(x);ifelse(any(is.na(x)), NA, revgeocode(x))})