我的全球环境中有一堆 sf 数据框,我可以将它们全部导出为 csv,但我想将它们全部导出为 shapefile。
我尝试过手动 st_write 一个对象并且它有效。现在我想批量导出 Glob Env 中的所有对象,并将它们保存为相应的 .shp 文件在我的工作目录中。 有关如何批量导出到 shapefile 的任何帮助吗?
作为参考,我的全局环境有大约 50 个元素,因此不可能手动将它们全部导出。 ;可以创建 sf 数据帧列表吗?
谢谢
我尝试保存为数据帧(list = c(is.data.frame, .globenv)),但我绝对需要导出为 shp,而不是 df list。
可能不会因此而赢得优雅的代价,但本质上是迭代环境中的对象,确保所需的类并使用对象名称将它们作为 shp 写入磁盘似乎可以解决问题:
obj <- ls()
for (i in 1:length(obj)) {
if (all(class(get(obj[i])) == c("sf", "data.frame"))) {
fname <- paste0(obj[i], ".shp")
sf::st_write(get(obj[i]), fname)
}
}