我有一个包含约100个点shapefile的文件夹,这些文件是在对有蹄类动物进行粪便采样时获得的位置。我想将所有这些点shapefile合并到R中的一个shapefile中。所有点数据最初都是.gpx格式,然后我将其更改为shapefile。
我对R还是很陌生,所以我对如何执行它感到非常困惑,无法找到合并或组合了多个shapefile的代码。任何建议将不胜感激。谢谢!
答案 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))