R循环创建新文件夹
R create new folders in a loop
我有 10 个光栅文件。我想做的是:
1) 读取 R 中的第一个光栅(光栅文件)
2) 将该文件保存在文件夹中(在循环中创建文件夹)
3) 再次读取第二个光栅文件
4) 将该文件保存在一个新文件夹中(也在循环中创建)
5) 重复10次
这是我设法做到的:
for (i in 1:10){
dir.create(paste0("Run",i)) #this creates a new folder called Run[i] where I will save the raster
setwd(paste0("Run",i)) # this makes the Run[i] my working directory so that my first raster is saved in Run[i]
moist<-raster(paste0("R://moist_tif/ind_moist",i,".tif")) # this reads in my raster moist[i]
writeRaster(moist,"moist.tif") # this saves my raster in folder Run[i]
当循环移动到 i+1
时,您可能会注意到,新文件夹 Run[i+1]
是在 Run[i]
中创建的,这是我不想要的。我想为 Run[i+1]
创建单独的文件夹,而不是文件夹中的文件夹。希望我把问题写清楚了。感谢您的帮助。
此致
这是你的逻辑。如果您更改目录,您还需要改回。
这是一个改进版本:
for (i in 1:10) {
newdir <- paste0("Run",i)
dir.create(newdir) # should test for error
cwd <- getwd() # CURRENT dir
setwd(newdir)
moist<-raster(paste0("R://moist_tif/ind_moist",i,".tif"))
writeRaster(moist,"moist.tif")
setwd(cwd)
}
我有 10 个光栅文件。我想做的是:
1) 读取 R 中的第一个光栅(光栅文件)
2) 将该文件保存在文件夹中(在循环中创建文件夹)
3) 再次读取第二个光栅文件
4) 将该文件保存在一个新文件夹中(也在循环中创建)
5) 重复10次
这是我设法做到的:
for (i in 1:10){
dir.create(paste0("Run",i)) #this creates a new folder called Run[i] where I will save the raster
setwd(paste0("Run",i)) # this makes the Run[i] my working directory so that my first raster is saved in Run[i]
moist<-raster(paste0("R://moist_tif/ind_moist",i,".tif")) # this reads in my raster moist[i]
writeRaster(moist,"moist.tif") # this saves my raster in folder Run[i]
当循环移动到 i+1
时,您可能会注意到,新文件夹 Run[i+1]
是在 Run[i]
中创建的,这是我不想要的。我想为 Run[i+1]
创建单独的文件夹,而不是文件夹中的文件夹。希望我把问题写清楚了。感谢您的帮助。
此致
这是你的逻辑。如果您更改目录,您还需要改回。
这是一个改进版本:
for (i in 1:10) {
newdir <- paste0("Run",i)
dir.create(newdir) # should test for error
cwd <- getwd() # CURRENT dir
setwd(newdir)
moist<-raster(paste0("R://moist_tif/ind_moist",i,".tif"))
writeRaster(moist,"moist.tif")
setwd(cwd)
}