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

问题描述:

我试图使用包ggmap来计算具有地址列表的目标地址的距离。我在一个CSV数据看起来象下面这样:R消息:错误 - 替换有x行,数据有y

Order ID Address 
1652049 435 E 70TH ST,10021 
1652123 1365 YORK AVE,10021 
1652053 530 E 72ND ST,10021 

,所以我尝试从我的输入地址得到所有这些地址例如距离:400哈德逊街,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

Sry,Cyrus我不知道如何上传文件,但它是一个简单的excel cvs文件有2列,一个是ids,另一个是地址。 –

确保列名不具有空间;所以不要使用“Order ID”的名称,而要使用“Order_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中之前(例如上面的地址栏),请确保该列中的每个值/单元格都像我自己的字符串一样保存(即用单引号括起来)。

+0

谢谢。我不确定什么是一个字符串的意思。在你的例子中,你使用一个向量来组合这些地址,但我正在从CVS文件读取数据,任何想法,我的输入不被视为一个字符串? –

+0

@WorstSQLNoob - 好问题。请参阅上面添加解释的编辑。 – www

+0

你好瑞恩,我发现了这个问题。在我的数据中,我有不同的order_id地址,那么它会给我错误。但如果我删除了这些重复的地址,我的原始代码运作良好。 –