R 使用多张excel工作表的最有效方法
目前,我正在使用Excel工作簿处理>15张工作表。我使用以下顺序: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
#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