Пользовательский набор данных / кадр из списка - PullRequest
1 голос
/ 29 марта 2019

Пример

A=data.frame("id"=c(1:10))
B=data.frame("id"=c(7:16))
C=data.frame("id"=c(-10:-1))

mylist=c(A,B,C)

Мне нужен список, в котором эти три фрейма данных объединены в один:

WANT = data.frame("id"=c(1:10,7:16,-10:-1),
                  dataID=c(rep("A",10),rep("B",10),rep("C",10)))

Если предположить, что у меня есть list, который содержит кучу фреймов данных (это то, как мне дают данные). Я хочу поместить их в один действительно большой фрейм / набор данных, например «ХОЧУ», который использует имена наборов данных в списке для dataID. Я могу сделать это только с несколькими, например, A, B, C, но у меня их около ста, и мне интересно, как мне вытащить фреймы данных в списке и создать длинный файл, такой как пример «ХОЧУ».

1 Ответ

1 голос
/ 29 марта 2019

вы можете добавить dataID в отдельные кадры данных и затем связать их вместе:

EDIT : после некоторого разъяснения, вот новый подход listNAMES = letters [1: 3]

    library(tidyverse)
    tibble(mydata = list(A, B, C),
           dataID = listNAMES) %>% 
      unnest()
    # A tibble: 30 x 2
   names    id
   <chr> <int>
 1     1     1
 2     1     2
 3     1     3
 4     1     4
 5     1     5
 6     1     6
 7     1     7
 8     1     8
 9     1     9
10     1    10
# ... with 20 more rows
...