首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误:分配的数据` `distHaversine(dtrav)`必须与现有数据兼容

错误:分配的数据` `distHaversine(dtrav)`必须与现有数据兼容
EN

Stack Overflow用户
提问于 2021-05-28 10:55:42
回答 1查看 72关注 0票数 0

我只是想用经度/纬度点来计算行驶的距离。我有2983223行数据。我一直收到这个错误,并且我的distance列在整个df中重复相同的值。

代码语言:javascript
运行
复制
library(geosphere)

dtrav <- matrix(c(df$start_lng,df$start_lat), c(df$end_lng, df$end_lat), nrow=2983223,ncol=2)

df$distance <- distHaversine(dtrav)
代码语言:javascript
运行
复制
Error: Assigned data `distHaversine(dtrav)` must be compatible with existing data.
x Existing data has 2983223 rows.
x Assigned data has 2983222 rows.
ℹ Only vectors of size 1 are recycled.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-28 12:14:12

应该将起点矩阵和终点矩阵分开,否则distHaversine会计算行之间的距离,这会导致n行的n-1距离,因此会出现错误消息。

代码语言:javascript
运行
复制
df$distance = distHaversine(cbind(c(df$start_lng,df$start_lat)),
                            cbind(c(df$end_lng, df$end_lat)))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67732275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档