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

如何从SpatialPoints列表创建SpatialPointsDataFrame?

合并列表中的SpatialPoints并创建SpatialPointsDataFrame

问题背景

我有一个包含多个SpatialPoints对象的列表,创建代码如下:

SP1 <- SpatialPoints(cbind(1,5))
SP2 <- SpatialPoints(cbind(2,4))
SP3 <- SpatialPoints(cbind(3,3))
SP.l <- list(SP1, SP2, SP3)

我需要一次性提取所有SpatialPoints来创建一个SpatialPointsDataFrame,但目前只能逐个处理单个元素,比如处理第三个元素的代码:

coords_3 = SP.l[[3]]@coords
data_3 = as.data.frame(SP.l[[3]])
SPDF_3 <- SpatialPointsDataFrame(coords=coords_3, data=as.data.frame(data_3))

我尝试过用lapply来批量处理,但没找到合适的写法,比如:

SP <- SpatialPoints(lapply(1:length(lidR.clip.SP.l), function(i) { ...

解决方案

最终找到了非常简洁的实现方式:使用do.call()调用rbind(),一次性合并列表中的所有SpatialPoints对象:

SP.l <- do.call("rbind", SP.l)

执行这段代码后,列表中的所有SpatialPoints会被合并为一个单独的对象,直接就可以用来创建SpatialPointsDataFrame,完全满足批量处理的需求!

内容的提问来源于stack exchange,提问作者N'ya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:04:55