如何在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"))
数据预览:
| lat | long |
|---|---|
| 1.2 | 4.23 |
| 1.54 | 4.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
相关产品推荐
相关产品推荐

