我正在尝试使用包ggmap
来计算目标地址的距离以及地址列表。我在csv中的数据如下所示:
Order ID Address
1652049 435 E 70TH ST,10021
1652123 1365 YORK AVE,10021
1652053 530 E 72ND ST,10021
所以我试着从我的输入地址到所有那些地址的距离,例如:400 Hudson St,10013,我在R中有以下代码:
library(ggmap)
mydata<-read.csv("address.csv")
mydata$Address<-as.character(mydata$Address)
mydata$Distance<-NA
a<-c("289 Hudson St,10013")
mydata$Distance<-mapdist(mydata$Address,a)$miles
但是代码给出了如下错误消息:
Error in `$<-.data.frame`(`*tmp*`, "Distance", value = c(8.2403854, 8.2403854, :
replacement has 53 rows, data has 31
答案 0 :(得分:2)
确保列名称没有空格;因此,请使用“Order_ID”之类的名称来代替名称“订单ID”。还要将每个地址作为自己的单独字符串:
library(ggmap)
mydata$Address<-as.character(mydata$Address)
mydata$Distance<-NA
a<-c("289 Hudson St,10013")
mydata$Distance<-mapdist(mydata$Address,a)$miles
输出:
Order_ID Address Distance
1 1652049 435 E 70TH ST,10021 8.240385
2 1652123 1365 YORK AVE,10021 8.475275
3 1652053 530 E 72ND ST,10021 8.618197
示例数据:
mydata <- data.frame(Order_ID=c(1652049,1652123,1652053),
Address=c('435 E 70TH ST,10021','1365 YORK AVE,10021',
'530 E 72ND ST,10021'))
修改强>
请注意,在上面的数据中,每个地址都是向量c()中的自己的字符串。我们可以通过在每个地址周围使用单引号来看到这种情况。我们这样做的原因是为了防止在使用CSV文件的情况下混淆数据,这些文件具有以逗号分隔的列。在将CSV文件读入R中并在其列中包含逗号(如上面的地址列)之前,请确保该列中的每个值/单元格都保存为我自己的字符串(即用单引号括起来)。