gpt4 book ai didi

r - data.table::fread 读取 Excel 工作簿中的所有工作表

转载 作者:行者123 更新时间:2023-12-03 23:51:46 27 4
gpt4 key购买 nike

我的 Excel 文档 my.xlsx有两个名为 的工作表表1 表2 .我想使用 fread 读取 Excel 工作簿中的所有工作表函数来自 data.table R包裹。以下代码只是读取事件工作表。想知道如何在不知道名字的情况下阅读所有工作表。谢谢

df3 <- data.table::fread("in2csv my.xlsx")
> names(df3)
[1] "A" "B"
> df3
A B
1: 1 2
2: 2 4
3: 3 6
4: 4 8
5: 5 10

最佳答案

我用了openxlsx::read.xlsx上次我需要从 XLSX 中读取许多表。

#install.packages("openxlsx")
library(openxlsx)
#?openxlsx::read.xlsx

#using file chooser:
filename <- file.choose()
#or hard coded file name:
#filename <- "filename.xlsx"

#get all the sheet names from the workbook
SheetNames<-getSheetNames(filename)

# loop through each sheet in the workbook
for (i in SheetNames){

#Read the i'th sheet
tmp_sheet<-openxlsx::read.xlsx(filename, i)

#if the input file exists, append the new data;; else use the first sheet to initialize the input file
ifelse(exists("input"),
input<-rbind(input, tmp_sheet),
input<-tmp_sheet)
}

注意:这假设每个工作表具有相同的列结构和数据类型。您可能需要对数据进行标准化\规范化(例如 tmp_sheet <- as.data.frame(sapply(tmp_sheet,as.character), stringsAsFactors=FALSE) ),或者将每张工作表加载到它自己的数据框中并在合并之前进一步预处理。

关于r - data.table::fread 读取 Excel 工作簿中的所有工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56545697/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com