循环的文件名

时间:2018-03-28 10:37:38

标签: r file loops

我正在尝试通过几个文件夹进行循环。在每个中我需要从循环中更改包含等于i的数字的文件名

但它不起作用。 我该如何指定文件名中的“i”是可变的?

 for(i in seq(240, 555, 5))
 {
    folder <- "C:/R_Files/test_auto_table_generator/pregnant_3mes_130kv_i"
    list.of.files <- list.files(folder, full.names=T)
    file.rename("C:/R_Files/test_auto_table_generator/pregnant_3mes_130kv_%%i/test_1_DoseDistribution.raw", "130kv_%%i_DoseDistribution.raw")
 }

1 个答案:

答案 0 :(得分:0)

由于您的文件夹结构不明确,我假设您要执行以下操作:

  1. 重命名test_1_DoseDistribution.raw个文件夹pregnant_3mes_130kv_n,其中n为240,245,... 555。
  2. 新文件名应为130kv_240_DoseDistribution.raw130kv_245_DoseDistribution.raw,依此类推,具体取决于其所在的文件夹。
  3. 使用好的'for循环:

    for(i in seq(240, 555, 5)){
      folder.location <- paste0("C:/R_Files/test_auto_table_generator/pregnant_3mes_130kv_", i)
      old.file <- paste0(folder.location, "/test_1_DoseDistribution.raw")
      new.file <- paste0(folder.location, "/130kv_",i, "_DoseDistribution.raw")
    
      file.rename(old.file, new.file)
    }
    

    使用sapply

    sapply(seq(240, 555, 5), function(x) {
            file.rename(
              paste0("C:/R_Files/test_auto_table_generator/pregnant_3mes_130kv_", x, "/test_1_DoseDistribution.raw"), 
              paste0("C:/R_Files/test_auto_table_generator/pregnant_3mes_130kv_", x, "/130kv_", x, "_DoseDistribution.raw")) 
    })