【问题标题】:Loop for converting files用于转换文件的循环
【发布时间】:2017-11-14 20:33:27
【问题描述】:

我有很多文件要使用 R 从 sas7bdat 转换为 Rds,我正在使用以下代码:

name <- read_sas("C:/Users/Desktop/Files/name.sas7bdat")
saveRDS(name, file = "C:/Users/Desktop/RDSfiles/name.Rds")

但是有太多文件我想使用循环来优化处理,有什么想法吗?

非常感谢!!

【问题讨论】:

  • This 可以提供帮助。

标签: r loops


【解决方案1】:

这是我将使用的简单循环:

path_sas7bdat <- "C:/Users/Desktop/Files/"
path_RDS <- "C:/Users/Desktop/RDSfiles/"

files <- list.files(path_sas7bdat, pattern = "sas7bdat")

for(i in files) {
    saveRDS(read_sas(paste0(path_sas7bdat, i)),
            paste0(path_RDS, gsub("sas7bdat", "RDS", i)))
}

PS:检查saveRDS选项collapse = FALSE的速度。

【讨论】:

  • 我也会这样做,但使用file.path 而不是paste(并且文件夹上没有尾随/)。
  • 它似乎工作但给了我一个错误:评估错误:无法分配大小为 11.7 Mb 的向量。
  • @Mee 应该是你的电脑问题,那是什么系统,你有多少内存?
  • 8GB。对于大文件给我这个错误,有什么解决办法吗?
猜你喜欢
  • 2021-01-19
  • 2013-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多