从列表值创建数据框 [英] Create a data frame from list values

查看:145
本文介绍了从列表值创建数据框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下列表:

peter <- data.frame(year = 1:5, a = rnorm(5), b = rnorm(5))
john <- data.frame(year = 1:5, a = rnorm(5), b = rnorm(5))

myList <- list(peter, john)
names(myList) <- c("peter", "john")

myList

    $peter
    year           a         b
    1      1.01464245 0.2490931
    2      1.38054309 0.8396630
    3     -0.84094830 0.2410526
    4     -0.05567379 0.6369121
    5     -0.66412862 1.5739672

    $john
    year          a          b
    1      0.3060996 -0.4256702
    2      0.7167710 -0.6828029
    3     -0.6896138  0.6577422
    4     -1.7647412 -0.5651756
    5      0.3065734 -0.4860141

如何将 myList 转换成以下数据框架:

How can I transform myList into the following data frame:

   year student           a          b
1     1   peter  1.01464245  0.2490931
2     2   peter  1.38054309  0.8396630
3     3   peter -0.84094830  0.2410526
4     4   peter -0.05567379  0.6369121
5     5   peter -0.66412862  1.5739672
6     1    john  0.30609964 -0.4256702
7     2    john  0.71677097 -0.6828029
8     3    john -0.68961377  0.6577422
9     4    john -1.76474117 -0.5651756
10    5    john  0.30657340 -0.4860141

非常感谢。

推荐答案

library(plyr)

dat <- ldply(myList)
colnames(dat) <- c("student", "year", "a", "b")

print(dat)
##    student year           a          b
## 1    peter    1  0.03716519  0.8465317
## 2    peter    2 -1.15449127  1.5461944
## 3    peter    3  0.15933780  0.7468312
## 4    peter    4  0.91745104  0.1113958
## 5    peter    5 -0.22924789 -0.5344617
## 6     john    1  0.40790134  0.5886599
## 7     john    2 -0.88635369 -0.3596063
## 8     john    3 -1.16444277  1.1080161
## 9     john    4 -0.19082412  0.1675609
## 10    john    5  1.19066829 -0.8855810

这篇关于从列表值创建数据框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆