如何使用原始文件名

时间:2018-05-25 14:30:11

标签: r loops save filenames multiple-files

我正在尝试从文件夹导入多个SAS数据文件,然后将它们作为具有相同原始SAS数据集名称的R数据帧保存回文件夹。一切正常,除了我无法弄清楚如何用原始文件名保存文件(即,我无法弄清楚>中的x保存(xxx,文件= ...)。

我尝试过的代码如下:

path <- "path to folder with sas files"

list.files(pattern=".sas7bdat$")
list.filenames<-list.files(pattern=".sas7bdat$")

for (i in 1:length(list.filenames)){
  assign(list.filenames[i], read_sas(list.filenames[i]))
  filename <- paste(list.filenames[i]) 
  save(list.filenames[i],file = paste0(path, paste(list.filenames[i], "Rdat", sep = ".")))
  }

不起作用......

for (i in 1:length(list.filenames)){
  assign(list.filenames[i], read_sas(list.filenames[i]))
  filename <- paste(list.filenames[i]) 
  save(list.filenames[[i]],file = paste0(path, paste(list.filenames[i], "Rdat", sep = ".")))
  }

不起作用

for (i in 1:length(list.filenames)){
  assign(list.filenames[i], read_sas(list.filenames[i]))
  filename <- paste(list.filenames[i]) 
  save(filename,file = paste0(path, paste(list.filenames[i], "Rdat", sep = ".")))
  }

有关如何使用list.filenames [i]中的原始名称保存文件的任何帮助?

1 个答案:

答案 0 :(得分:0)

使用&#34;列表&#34; save的论点。像

这样的东西
path <- "path to folder with sas files"

list.filenames <- list.files(path, pattern="\\.sas7bdat$")

for (i in list.filenames) {
    datName <- tools::file_path_sans_ext(i)
    assign(datName, read_sas(i))
    save(list=datName, file = paste0(path, paste(datName, "Rdat", sep = ".")))
}

会奏效。此外,我想你希望pattern=".sas7bdat$"pattern="\\.sas7bdat$,因为&#34;。&#34;是正则表达式中的通配符。