R消息:错误 - 替换有x行,数据有y

时间:2017-09-10 20:59:03

标签: r spatial ggmap

我正在尝试使用包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

1 个答案:

答案 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中并在其列中包含逗号(如上面的地址列)之前,请确保该列中的每个值/单元格都保存为我自己的字符串(即用单引号括起来)。