Список списков для данных - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть список списков, которые содержат одинаковые элементы.Я хочу, чтобы они были в кадре данных, который объединяет подобные элементы в списке.

list <- list(school1 = list(grade1 = c(89, 87, 90), grade2 = c(88, 98, 65), grade3 = c(90, 89, 78)), school2 = list(grade1 = c(85, 88, 93), grade2 = c(78, 68, 95), grade3 = c(92, 83, 75)))

Желаемый результат будет:

grade1 grade2 grade3  
89      88     90  
87      98     89  
90      65     78  
85      78     92  
88      68     83  
93      95     75 

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Еще одна попытка будет:

do.call( rbind.data.frame, list )

          # grade1 grade2 grade3
# school1.1     89     88     90
# school1.2     87     98     89
# school1.3     90     65     78
# school2.4     85     78     92
# school2.5     88     68     83
# school2.6     93     95     75
0 голосов
/ 15 февраля 2019

Мы можем использовать as_tibble для преобразования list внутри list в tibble и затем связать строки (map_df)

library(tidyverse)
map_df(list, as_tibble)
# A tibble: 6 x 3
#  grade1 grade2 grade3
#   <dbl>  <dbl>  <dbl>
#1     89     88     90
#2     87     98     89
#3     90     65     78
#4     85     78     92
#5     88     68     83
#6     93     95     75

Или с помощью base R

do.call(rbind,  lapply(list, as.data.frame))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...