【发布时间】:2017-12-26 05:13:32
【问题描述】:
我正在处理大量不同的文件,所以我想循环读取它们。它适用于 csv 文件,但我在读取 xlsx 文件时遇到了问题。
library(openxlsx)
allFiles <- list.files("path", full.names = T)
allFiles <- lapply(allFiles, read.xlsx)
我的数据集中的一列包含日期,当我运行上面的代码时,这些日期被自动转换为一组奇怪的数字。 (除此之外,一切正常。)所以我尝试将另一个参数传递给函数:
allFiles <- list.files("path", full.names = T)
allFiles <- lapply(allFiles, read.xlsx, detectDates = TRUE)
这返回了一条错误消息:
Error in file(description = xlsxFile) : invalid 'description' argument
但当我在单个文件上尝试时效果很好:
read.xlsx("path", detectDates = TRUE)
此外,奇怪的是,当我删除参数并尝试运行时
allFiles <- list.files("path", full.names = T)
allFiles <- lapply(allFiles, read.xlsx)
以前工作过,它返回相同的错误(无效的“描述”参数)。几个小时后,在我关闭并重新启动 RStudio 后,它又可以工作了。当我尝试使用 detectDates = TRUE 参数时,该过程会自行重复,现在循环在有或没有它的情况下都不起作用。 我在一些在线讨论中读到 XLConnect 有时可以帮助解决此类问题,但不幸的是我无法加载它(它需要 rJava,即使我成功安装它,当我尝试加载它时它也会返回错误)。
单独读取每个文件或转换为 csv 需要很长时间。有没有人遇到过这种情况或知道解决方案?
【问题讨论】: