R在循环中创建新文件夹

时间:2015-11-24 13:01:50

标签: r for-loop working-directory

我有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]而不是文件夹中的文件夹创建单独的文件夹。希望我能清楚地写出这个问题。谢谢你的帮助。

此致

1 个答案:

答案 0 :(得分:6)

这是你的逻辑。如果您更改目录,还需要更改

以下是改进版本:

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)
}