У меня есть файл Excel с несколькими листами, содержащими одну и ту же структуру данных. Я использую readxl для чтения листов и сохраняю эти результаты в списке на листе как один элемент. Теперь я хотел бы объединить их в один фрейм данных. Моя структура после чтения данных такая же, как в приведенном ниже списке примеров (для ясности я опустил часть чтения XLS)
example_list = list(sheet1=tibble(A=c(1,2), B=c(3,4)), sheet2 = tibble(A=c (5,6), B=c(7,8)))
example_list
$sheet1
# A tibble: 2 x 2
A B
<dbl> <dbl>
1 1 3
2 2 4
$sheet2
# A tibble: 2 x 2
A B
<dbl> <dbl>
1 5 7
2 6 8
Мой результат должен выглядеть так:
# A tibble: 4 x 2
A B
<dbl> <dbl>
1 1 3
2 2 4
3 5 7
4 6 8
Я пробовал flatten(example_list)
но это не дало мне желаемого результата.
flatten
сжимает list
элементы в vector
, нам нужно bind_rows
library(dplyr)
bind_rows(example_list)
Или с rbind
из base R
(если нам не нужна библиотека)
do.call(rbind, example_list)
также bind_rows
позволяет добавить столбец с источником данных, используя аргумент .id
Вам нужно
bind_rows(example_list)