绑定 XLS 文件,同时摆脱多余的工作表

问题描述

我有 774 个 XLS 文件,我想将它们合并到一个大型 CSV 数据库中。它们大致相似,但我不知道如何处理差异...

有些XLS文件不止一张,没用;因此我需要摆脱它们。问题是,在某些文件中,这些额外的工作表被移到了第一页,而在其他文件中,这不会发生。所以我不能依赖在 R 上读取 XLS 的函数认值,对吗?

除此之外,额外的床单(那些我不打算保留的)的名称可能会有所不同。

下面我介绍一下我知道的脚本,希望有人能帮我适应这种情况。

setwd("D:/Folder")
library(readxl)
lst = list.files()
df = data.frame()

# Now comes the loop

for(table in lst){
  dataFromExcel <- read_excel(table)
  df <- rbind(df,dataFromExcel)
}

当我运行循环时,我收到消息:

名称

  • `` -> ...3
  • `` -> ...4
  • `` -> ...5 as.POSIXlt.character(x,tz,...) 中的错误:字符串不是标准的明确格式

有人可以帮我吗?

解决方法

试试

for(table in lst){
  dataFromExcel <- read_excel(table,col_types = "text" ) # <- !!
  df <- rbind(df,dataFromExcel)
}

之后您必须将数据转换为正确的类型..

进一步:也许是更像 R 的代码:

library( data.table )
DT <- rbindlist( lapply( list,read_excel,col_types = "text" ),use.names = TRUE,fill = TRUE )

应该与您的 for 循环执行相同的操作(并且有一些不错的额外功能,请参阅 ?data.table::rbindlist )。