问题描述
我有 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)
}
当我运行循环时,我收到消息:
新名称:
有人可以帮我吗?
解决方法
试试
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 )。