You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用geodist包计算患者居住地到医院的经纬度距离?

使用geodist包批量计算患者到医院的就诊距离

完全可以用geodist包实现批量计算,以下是具体步骤和代码:

操作步骤

  • 先安装并加载geodist包
  • 定义医院的固定坐标
  • 调用函数批量计算每个患者坐标到医院的距离
  • 将计算结果合并到原数据框中

完整代码

# 首次使用需安装geodist包
install.packages("geodist")

# 加载所需包
library(geodist)
library(data.table) # 适配你的data.table格式数据

# 定义医院坐标:注意geodist默认输入顺序为「经度(longitude), 纬度(latitude)」
hospital_coords <- data.frame(longitude = -119.850, latitude = 36.840)

# 批量计算距离:采用哈维正弦公式计算球面距离(单位:公里)
d$distance_to_hospital <- geodist(
  x = d[, .(longitude, latitude)],
  y = hospital_coords,
  measure = "haversine",
  paired = TRUE # 开启一对一配对计算,确保每个患者对应医院的距离
)

# 查看最终结果
print(d)

代码说明

  • measure = "haversine":选择哈维正弦公式计算地球表面两点距离,结果默认单位为公里;若需要英里,可改用measure = "geodesic"并配合units = "mi"参数
  • paired = TRUE:避免计算所有坐标组合的距离,只做患者-医院的一对一匹配计算
  • 原数据中的NA值(如Bedford的坐标)会自动返回NA,无需额外处理

示例结果

运行后数据框会新增distance_to_hospital列,示例输出如下:

major_city latitude longitude distance_to_hospital
1: Mountain View    37.39   -122.07             243.0752
2:    Watsonville    36.90   -121.70              19.5064
3:       Honolulu    21.31   -157.85            3906.7400
...
9:        Bedford       NA        NA                   NA
10:      San Jose    37.27   -121.84             202.1415

内容的提问来源于stack exchange,提问作者Jamie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 09:34:51