在R中组合多个shapefile

时间:2018-11-27 19:52:57

标签: r shapefile

我有一个包含约100个点shapefile的文件夹,这些文件是在对有蹄类动物进行粪便采样时获得的位置。我想将所有这些点shapefile合并到R中的一个shapefile中。所有点数据最初都是.gpx格式,然后我将其更改为shapefile。

我对R还是很陌生,所以我对如何执行它感到非常困惑,无法找到合并或组合了多个shapefile的代码。任何建议将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:3)

library(sf)

列出文件夹位置内的所有shapefile

file_list <- list.files("shapefile/folder/location", pattern = "*shp", full.names = TRUE)

读取所有shapefile,存储为列表

shapefile_list <- lapply(file_list, read_sf)

附加单独的shapefile,在我的示例中有4个shapefile,可以通过使用for循环或对更长的列表应用apply函数来改进它。

all_schools <- rbind(shapefile_list[[1]], shapefile_list[[2]], shapefile_list[[3]], shapefile_list[[4]])

答案 1 :(得分:3)

基于@M_Merciless .. 对于长列表,您可以使用

all_schools <- do.call(rbind, shapefile_list)

或者,非常快:

all_schools <- sf::st_as_sf(data.table::rbindlist(x))