Как сохранить несколько файлов в цикле с оригинальными именами файлов - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь импортировать несколько файлов данных SAS из папки, а затем сохранить их обратно в папку как R данных с тем же исходным именем набора данных SAS.Все работает, за исключением того, что я не могу понять, как сохранить файл с исходным именем файла (то есть я не могу понять, что 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 голосов
/ 25 мая 2018

Используйте аргумент "list" 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$, так как "."подстановочный знак в регулярном выражении.

...