Чтобы получить вашу именованную таблицу, нужно немного потрудиться.
Сначала вам нужно загрузить книгу.
library(openxlsx)
wb <- loadWorkbook("name_excel_file.xlsx")
Далее вам нужно извлечь имя вашей именованной таблицы.
# get the name and the range
tables <- getTables(wb = wb,
sheet = 1)
Если у вас есть несколько именованных таблиц, все они находятся в tables
. Моя именованная таблица называется Table1.
Затем вам нужно извлечь номера столбцов и номеров строк, которые вы позже будете использовать для извлечения именованной таблицы из файла Excel.
# get the range
table_range <- names(tables[tables == "Table1"])
table_range_refs <- strsplit(table_range, ":")[[1]]
# use a regex to extract out the row numbers
table_range_row_num <- gsub("[^0-9.]", "", table_range_refs)
# extract out the column numbers
table_range_col_num <- convertFromExcelRef(table_range_refs)
Теперь вы перечитываете файл Excel с параметрами cols
и rows
.
# finally read it
my_df <- read.xlsx(xlsxFile = "name_excel_file.xlsx",
sheet = 1,
cols = table_range_col_num[1]:table_range_col_num[2],
rows = table_range_row_num[1]:table_range_row_num[2])
В итоге вы получите фрейм данных только с содержимым вашей именованной таблицы.
Я использовал это некоторое время назад. Я где-то нашел этот код, но уже не знаю, откуда.
person
ricoderks
schedule
08.07.2020