Вы можете использовать пакет openxlsx
, чтобы открыть файлы Excel. Чтобы загрузить все листы в структуру, вы можете сделать:
library(openxlsx)
sheetNames = names(loadWorkbook("Book1.xlsx"))
File_1 = lapply(sheetNames, function(x){read.xlsx("Book1.xlsx",sheet = x)})
names(File_1) = sheetNames
При этом будут прочитаны имена листов из файла 'Book1.xlsx', а затем продолжено чтение всех данных в File_1
. Последняя строка добавит имя листов к каждому элементу в списке.
Структура, которую вы получаете, является списком. Например:
> File_1
$Sheet1
1 2
1 3 4
$Sheet2
1 2
1 1 2
2 1 2
Edit:
Если вы хотите прочитать все файлы Excel и сохранить их в одной структуре, выполните:
library(openxlsx)
filenames = list.files(pattern = "\\.xlsx$")
fullData = lapply(filenames, function(fil){
sheetNames = names(loadWorkbook(fil))
File_data = lapply(sheetNames, function(x){read.xlsx(fil,sheet = x)})
names(File_data) = sheetNames
File_data
})
names(fullData) = filenames
Объяснение:
lapply
будет перебирать все имена файлов, оканчивающиеся на .xlsx
, и для каждого из них:
- читать имена листов каждой книги
- загрузить данные листа
- добавить название листа
И после прочтения всех файлов имя каждого файла добавляется к результату.
Результат (для двух файлов, созданных для этого):
> fullData
$Book1.xlsx
$Book1.xlsx$Sheet1
1 2
1 3 4
$Book1.xlsx$Sheet2
1 2
1 1 2
2 1 2
$Book2.xlsx
$Book2.xlsx$Income
11 22 55 77
1 33 44 66 88
$Book2.xlsx$Expenses
3 55
1 3 55
2 3 55