Вы можете использовать do.call('rbind', ...)
для получения кадра данных из вашего списка и rep()
для индексов списка с аргументом times
, установленным в sapply(l, nrow)
(где l
- имя вашего списка), чтобы получить желаемые номера элементов:
# Make an example list
l <- list(data.frame(a = 1:3, b = 4:6), data.frame(a = 7:8, b = 8:9))
l
#> [[1]]
#> a b
#> 1 1 4
#> 2 2 5
#> 3 3 6
#>
#> [[2]]
#> a b
#> 1 7 8
#> 2 8 9
# Get a dataframe from it
df <- do.call('rbind', l)
# Add the element numbers by repeating the indices of the list,
# each as many times as the number of rows in that element's dataframe
df$element_number <- rep(seq_along(l), times = sapply(l, nrow))
df
#> a b element_number
#> 1 1 4 1
#> 2 2 5 1
#> 3 3 6 1
#> 4 7 8 2
#> 5 8 9 2
Создано в 2018-11-04 пакетом Представ (v0.2.1)