我有一个脚本,可以对shapefile进行一些计算,我希望自动化并将值传输到新表中。 我可以在shapefile列表中阅读,但我需要先将它们全部转换为数据帧才能进行计算,不知道如何继续自动执行此过程。
我选择了
中加载shapefile的文件夹Directory<-"E:/Outputs/BAU-CCSM4/Run0"
我创建了一个shapefile列表
filename <- list.files(Directory, pattern="*.shp", full.names=FALSE)
我使用basename解析.shp以使readOGR正常工作
filenames<- basename(file_path_sans_ext(filename))
我创建一个循环,读取所有文件并分配其名称
for (i in 1:length(filename)) assign(paste(filename[i]), readOGR(Directory, filenames[i]))
我想将我读取的所有文件转换为data.frames,然后遍历我的计算以在每个数据帧上执行,然后将最终值输出到新表中。但我不确定如何创建一个新的循环来创建,因为尝试调用文件我得到一个错误,因为data.frame函数需要将其格式化为data.frame(shapefilename)与字符------ - &GT; `around shapefilename。
是否有另一种方法可以使用变量格式化`for data.frame函数或另一种方式来循环我的shapefile作为数据帧读入。
...
对于脚本部分来说,它将是
的内容filenames[i]$TotalArea <-c ((filenames[i]$Area) - ((filenames[i]$Area)* (filenames[i]$YieldRed)))
write.csv(filenames[i], file="Newtable")
不确定这是否有效,但在我来之前必须让第一部分工作。