#r #import #xls
#r #импорт #xls
Вопрос:
У меня есть 27 файлов xls для импорта в R, и у каждого есть несколько листов в рабочей книге. Я пытаюсь загрузить все файлы за один раз, при этом только первый лист в каждом файле импортируется в свой собственный фрейм данных (другие листы в данный момент импортировать не нужно).
Я видел, как некоторые создают список файлов, а затем используют пакет readxl, однако я использую новейшую версию R (3.5.3), и, насколько я могу судить, она несовместима.
Я надеюсь, что в итоге получится 27 отдельных фреймов данных, к которым я смогу затем добавить столбец, идентифицирующий конкретный фрейм данных, чтобы все они могли быть объединены в один фрейм данных для работы.
Ответ №1:
Список файлов и readxl
работают нормально. Я создал 3 файла Excel с
Mappe1.xlsx — Таблица 1 — A1:A4 — 1, 2, 3, 4
Mappe2.xlsx — Таблица 1 — A1:A4 — 4, 2, 3, 4
Mappe3.xlsx — Таблица 1 — A1:A4 — 4, 2, 3, 4
Если вы используете код
library(readxl)
library(tidyverse)
# define the names of the excel files
excelNames <- paste0('Mappe', 1:3, '.xlsx')
lapply(1:length(excelNames), function(i) {
# get current ID and rid of the file extension
currentID <- str_split(excelNames[i], '.xlsx', simplify = TRUE)[1]
# read excel file and add column with id
read_excel(
excelNames[i],
sheet = 'Tabelle1',
col_names = FALSE,
range = cell_limits(c(1, 1), c(4, 1))) %>%
mutate(ID = currentID)
}) %>%
# bind all results into one dataframe
bind_rows()
вы должны получить
# A tibble: 12 x 2
...1 ID
<dbl> <chr>
1 1 Mappe1
2 2 Mappe1
3 3 Mappe1
4 4 Mappe1
5 4 Mappe2
6 2 Mappe2
7 3 Mappe2
8 4 Mappe2
9 4 Mappe3
10 2 Mappe3
11 3 Mappe3
12 4 Mappe3