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

如何创建适配divvy包bandit函数的双元素向量?

解决divvy包bandit函数的坐标向量创建问题

首先明确divvy包的bandit()函数对坐标参数的要求:如果是单个点位,需要双元素数值向量(通常是经度在前、纬度在后);如果是多个点位,则需要矩阵或数据框(每行对应一个点位的经纬度)。结合你的数据框,正确的创建方法如下:

方法1:提取坐标列作为普通数据框(推荐)

因为你加载了dplyr,默认创建的df是tibble类型,直接索引列可能会保留tibble格式,导致函数识别异常。可以先转换成普通数据框:

# 注意:多数地理函数要求经度在前、纬度在后,需确认bandit文档的参数顺序
coords_df <- as.data.frame(df[, c("Longitude", "Latitude")])

直接将这个数据框传入bandit()的coords参数即可。

方法2:转换为坐标矩阵

如果函数更偏好矩阵格式,可使用:

coords_matrix <- as.matrix(df[, c("Longitude", "Latitude")])

方法3:生成包含双元素向量的列表(若需单个点位向量集合)

如果需要将每个点位单独存为双元素向量(比如后续逐点处理),可以用apply生成列表:

coords_list <- apply(df[, c("Longitude", "Latitude")], 1, c)
# 此时coords_list的每个元素都是一个双元素数值向量,对应一行的经纬度

关于你遇到的错误解释

你用df[,c("Latitude", "Longitude")]触发的错误,大概率是因为tibble的索引逻辑和普通数据框略有差异,加上可能误将索引参数传入了列表类型(比如不小心写了list(c("Latitude", "Longitude")))。转换成普通数据框后即可避免这个问题。

内容的提问来源于stack exchange,提问作者Mary Ann Moody

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 16:03:23