这是一个解决方案,您只需指定工作簿的数量和每 wb 的工作表数量。
library(XLConnect)
library(purrr)
number_of_sheets <- 6
number_of_wbs <- 100
DF <- map_dfc(1:number_of_wbs, function(x) {
wb <- loadWorkbook(paste0("wb",x,".xlsx"))
tables <- map_df(1:number_of_sheets,function(y) readWorksheet(wb,
sheet = paste0("Sheet",y)))
colnames(tables) <- paste0("wb",x,".xlsx")
return(tables)
}
)
在我的模拟示例中,我有 2 个 wb:
第一个工作簿的 Sheet1 包含:
header1
0.706206019
0.929864738
0.820188853
0.822880906
0.986846159
0.201870111
0.295824333
0.682271283
0.918636814
0.308713375
0.620041348
0.396961295
0.592918544
0.813379311
0.679918546
0.149930842
0.344765206
0.454569802
0.439798642
0.79660039
第二个工作簿的 Sheet1 包含:
header1
0.359145063
0.97889235
0.561966441
0.560005392
0.37039449
0.827651329
0.428239882
0.684086633
0.376406956
0.67482297
0.088475246
0.843315296
0.478772685
0.431786377
0.213058341
0.570395357
0.418874778
0.270617596
0.0852233
0.894443579
我的最终输出是这样的数据框:
> DF
wb1.xlsx wb2.xlsx
1 0.74550551 0.324916411
2 0.76288674 0.503682245
3 0.98223947 0.426830680
4 0.90170329 0.813966804
5 0.56008503 0.680455280
6 0.45745945 0.001716535
7 0.14974342 0.089871648
8 0.23033300 0.362305799
9 0.57763394 0.426019894
10 0.04268935 0.055268297
11 0.26225496 0.903003228
12 0.58454780 0.836464347
13 0.43491035 0.393890841
14 0.18667029 0.147720392
15 0.81738619 0.653991709
16 0.45968982 0.209427777
17 0.13967637 0.274640492
18 0.25768938 0.522425832
19 0.66174385 0.722621747
20 0.49010581 0.689067647