【问题标题】:How to save multiple files in loop with original filenames如何使用原始文件名循环保存多个文件
【发布时间】:2018-11-04 23:46:30
【问题描述】:

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

我试过的代码如下:

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] 中的原始名称保存文件有任何帮助吗?

【问题讨论】:

  • 您可以使用 list[[i]] 按索引抓取列表的各个元素。尝试将所有对列表的调用放在双括号中,而不是单括号中。

标签: r loops save filenames


【解决方案1】:

使用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$,因为“。”是正则表达式中的通配符。

【讨论】:

  • 谢谢。这仍然遇到我试图解决的问题。它将小标题保存在具有适当名称的文件夹中,但是当我将其加载回 R 时,所有数据帧都称为“tb”。我正在尝试获取一个名为“stock”的 sas 数据文件,将其作为 tibble 或数据框保存到文件夹中作为“stock”,然后当我将其独立加载回 R 时,它将被命名为“stock”,而不是“结核病”。如果您对此有任何其他想法,我将不胜感激,因为我很困惑。谢谢。
  • 我明白了。我已经修改了答案。
  • 效果很好。非常感谢您帮助我,这将带我永远。我从未见过 tools::file_path_sans_ext()。再次感谢,非常感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-09
  • 2015-06-09
  • 2020-02-16
  • 2021-07-04
  • 1970-01-01
  • 1970-01-01
  • 2013-06-25
相关资源
最近更新 更多