我在我的全局环境中有一堆sf数据帧,我可以将它们全部导出为csv,但我想将它们全部导出为shapefils.

I have tried manually st_write one object and it works. Now I want to bulk export all the objects in my Glob Env and save them as corresponding .shp in my working directory. Any help on how to bulk export into shapefiles?

作为参考,我的全局环境大约有50个元素,所以不可能手动导出它们.;可能是创建一个sf tames cukd做的列表?

谢谢

我试过保存为rabrames(list = c(is. data. frame,. globenv)),但我绝对需要导出为shp,而不是df list.

推荐答案

可能不会赢得优雅的价格,但本质上迭代环境中的对象,确保所需的类,并使用对象的名称将它们作为shp写入磁盘似乎可以做到这一点:

objs <- ls() 

for (obj in objs) {
  
  if (all(class(get(obj)) == c("sf", "data.frame"))) {
    
    fname <- paste0(obj, ".shp")
    
    sf::st_write(get(obj), fname)
  }
}

R相关问答推荐

是否有任何解决方案可以优化VSCode中RScript的图形绘制?

单击 map 后,将坐标复制到剪贴板

更改Heatmap Annotation对象的名称

咕噜中的元素列表:map

bslib::card_header中的shine::downloadButton,图标而不是文本

将包含卷的底部25%的组拆分为2行

当我们有多个特殊字符时,使用gsub删除名称和代码'

如何在分组条形图中移动相关列?

使用R中的正则表达式将一列分割为多列

方法::slotName如何处理非类、非字符的参数?

计算数据帧中指定值之前的行数,仅基于每行之后的future 行,单位为r

按时间顺序对不同事件进行分组

在R中创建连续的期间

计算直线上点到参考点的总距离

自定义交互作用图的标签

如何将宽格式的患者信息数据高效地转换为患者计数的时间序列?

R:使用ApexCharge更改标签在饼图中的位置

使用R、拼图和可能的网格包绘制两个地块的公共垂直线

具有自定义仓位限制和计数的GGPLATE直方图

reshape 数据帧-基于组将行转换为列