R消息:错误-替换有x行,数据有y行 [英] R Message: Error - replacement has x rows, data has y

查看:12
本文介绍了R消息:错误-替换有x行,数据有y行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用ggmap包来计算具有地址列表的目标地址的距离。我在CSV中的数据如下:

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

推荐答案

确保列名不包含空格;因此,不使用名称"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文件的列以逗号分隔。在将CSV文件读入其列中包含逗号的R(如上面的Address列)之前,请确保该列中的每个值/单元格都保存为自己的字符串,就像我所做的那样(即用单引号括起来)。

这篇关于R消息:错误-替换有x行,数据有y行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆