【问题标题】:Is there a way to iterate converting .rds to .csv?有没有办法迭代将.rds 转换为.csv?
【发布时间】:2019-11-22 11:24:13
【问题描述】:

我想知道是否有一种方法可以迭代将多个 .rds 文件(都在同一目录“c:/Qualtrics”中)转换为 .csv。 我使用 convert 转换单个 .rds,但我无法弄清楚如何迭代该过程(我有超过 500 个文件要转换)。

我也是 R 初学者。

【问题讨论】:

  • 为了将 .rds 转换为 .csv,存储的对象应该是一个数据框。您可以使用list.files 获取所有 .rds 文件的文件名,并使用 for 循环将它们转换为 csv 文件。
  • 看看 lapply 函数。
  • yifyan,我已经使用 list.files 来获取所有文件名,但我无法设计一个可以工作的 for 循环。
  • 能否提供您使用的代码或遇到的错误信息?
  • 我将它用于单个转换'convert("SV_00SgIJPVvm8Qtsp.rds","SV_00SgIJPVvm8Qtsp.csv")',但是我不知道如何迭代它,因为'convert'需要原始扩展和新的扩展。我使用 Qualtrics

标签: r


【解决方案1】:

我假设您正在使用包rio,其中包括一个转换function。如果没有可重复的数据,我无法对其进行测试,但它应该足以让您入门。剥离扩展名并添加“.csv”的行假定只有一个“。”在文件名中。如果不是这样,那就有点复杂了。

library(rio)
Qualtrics <- list.files(directory)   # This gives you your input files
# Split off the extension and add .csv extension
QualtricsCSV <- paste0(sapply(strsplit(Qualtrics, "\\."), "[", 1), ".csv")
setwd(directory)
for (i in seq(length(x)) {
     convert(Qualtrics[i], QualtricsCSV[i])
}

【讨论】:

  • 谢谢 dcarlson。这样就可以将文件列表转换为 .csv,但是如何使用它将实际的 .rds 文件转换为 .csv?
  • 我从这个问题中弄清楚了:stackoverflow.com/questions/15707039/… 我最终使用了 for (Qualtrics in Sys.glob('*.rds')) write.csv(readRDS(Qualtrics), file = gsub ('rds$','csv', Qualtrics)) 将目录中的所有文件转换为 .csv。
猜你喜欢
  • 2021-10-22
  • 1970-01-01
  • 1970-01-01
  • 2022-08-12
  • 2020-01-10
  • 2020-03-08
  • 2019-03-31
  • 2021-10-27
  • 1970-01-01
相关资源
最近更新 更多