R 使用多张excel工作表的最有效方法

R 使用多张excel工作表的最有效方法,r,R,目前,我正在使用Excel工作簿处理>15张工作表。我使用以下顺序: #libraries library(data.table) library(openxlsx) #load excel file wb <- loadWorkbook("Data.xlsx") #write sheets into a list of data frames name <- names(wb) df <- list() for (i in

目前,我正在使用Excel工作簿处理>15张工作表。我使用以下顺序:

#libraries
library(data.table)
library(openxlsx)    

#load excel file
    wb <- loadWorkbook("Data.xlsx")

    #write sheets into a list of data frames
    name <- names(wb)
    df <- list()
    for (i in 1:length(name)){

      d <- lapply(i, function(i) readWorkbook(wb, sheet = name[i], startRow = 1, colNames = TRUE, rowNames = FALSE, detectDates = TRUE, skipEmptyRows = TRUE, skipEmptyCols = TRUE, rows = NULL, cols = NULL, check.names = FALSE, namedRegion = NULL, na.strings = "NA", fillMergedCells = FALSE))

      df <- append(df, d)
    }



    #assign names to columns
    names(df) <- name

    #merge DFs into one list
    DT <- rbindlist(df)
#库
库(数据表)
库(openxlsx)
#加载excel文件

wb为什么您要同时使用
for
循环和
lappy
?类似的答案--可以很容易地适应于加载多个Excel工作簿/工作表。在没有循环的情况下,它会不断覆盖
d
1$:'data.frame':490 obs的列表。共3个变量:..$datetime:num[1:490]42866 42866 42866 42866….$ID:chr[1:490]“t13”t13“t13”t13“值:chr[1:490]“8分钟”“8分钟”“8分钟”“8分钟”但是在这种情况下列表应该有13个条目。因此,我添加了循环以继续追加导入的值,而不是覆盖它们。这仅仅是因为拉普利才有可能吗?@Phil看起来不错,我会仔细研究的,谢谢,类似于
l