从列表值创建数据框 [英] Create a data frame from list values
本文介绍了从列表值创建数据框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下列表:
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屋!
查看全文