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

如何在R中从数据表的lat和long变量构建坐标向量列表?

在R中将data.table的经纬度列转为坐标向量列表

给定如下包含纬度(lat)和经度(long)的data.table:

data_table <- structure(list(lat = c(1.2, 1.54),
                     long = c(4.23, 4.29)),
                row.names = c(NA,-2L), class = c("data.table", "data.frame"))

数据预览:

latlong
1.24.23
1.544.29

我们需要将每一行的经纬度组合成向量,最终生成一个向量列表,预期输出为:

[[1]]
[1] 1.20 4.23

[[2]]
[1] 1.54 4.29

下面提供几种实现方式:

方法一:Base R 原生实现

使用mapply函数逐行组合经纬度,通过SIMPLIFY = FALSE确保结果为列表:

coord_list <- mapply(c, data_table$lat, data_table$long, SIMPLIFY = FALSE)

方法二:data.table 原生语法实现

利用data.table的分组特性,按行索引逐行生成坐标向量:

library(data.table)
coord_list <- data_table[, .(coord = list(c(lat, long))), by = .I]$coord

方法三:tidyverse 风格实现

借助purrr包的pmap函数按行遍历数据并组合:

library(purrr)
coord_list <- pmap(data_table, ~ c(..1, ..2))

运行任意一种方法后,输出的coord_list即为预期的坐标向量列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 17:45:10