我有一个data.table df,其中数据集如下所示
Pickup_longitude Pickup_latitude
1: -73.945 40.799
2: -73.930 40.864
3: -73.944 40.696
4: -74.001 40.688
5: -73.926 40.755
6: -73.936 40.812
我想介绍第三列'Pickup_Loc',它将是该位置的文本。要获得此功能,我使用的是revgeocode
库中的ggmap
。
我无法在列上应用此功能。
我试过这个
df <- df[, pickup_loc := lapply(.SD,revgeocode), .SDcols = c("Pickup_longitude","Pickup_latitude")]
但它给了我一个这样的错误:
错误:is.numeric(location)&amp;&amp; length(location)== 2不为TRUE
有人可以帮忙吗?
答案 0 :(得分:1)
ggmap::revgeocode
要求经度/纬度格式的位置为长度为2的数字数组。建议使用mapply
将经度和纬度连接成长度为2的数组。
dt <- fread("
Pickup_longitude,Pickup_latitude
-73.945,40.799
-73.930,40.864
-73.944,40.696
-74.001,40.688
-73.926,40.755
-73.936,40.812
")
dt[, Address:=mapply(function(long, lat) ggmap::revgeocode(c(long, lat)),
Pickup_longitude, Pickup_latitude)]