首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何组合R中数据列表中的元素?

如何组合R中数据列表中的元素?
EN

Stack Overflow用户
提问于 2014-04-12 19:45:57
回答 2查看 601关注 0票数 1

例如,我有一个数据列表(可能有许多元素,但这里只有2个):

代码语言:javascript
运行
复制
> datalist = list(a = matrix(1:10, 5, 2), b = matrix(11:20, 5, 2))
> datalist
$a
     [,1] [,2]
[1,]    1    6
[2,]    2    7
[3,]    3    8
[4,]    4    9
[5,]    5   10

$b
     [,1] [,2]
[1,]   11   16
[2,]   12   17
[3,]   13   18
[4,]   14   19
[5,]   15   20

我想将这两个元素a&b组合成一个数据框架,比如说

代码语言:javascript
运行
复制
> dataframe
      [,1] [,2]
 [1,]    1    6
 [2,]    2    7
 [3,]    3    8
 [4,]    4    9
 [5,]    5   10
 [6,]   11   16
 [7,]   12   17
 [8,]   13   18
 [9,]   14   19
[10,]   15   20

也就是说,数据列表中有许多元素。他们都有相同的专栏。我想将它们组合成一个数据框架,例如在R中使用"rbind()“函数,如何实现呢?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-12 20:28:07

使用plyr的简易农民

代码语言:javascript
运行
复制
library(plyr)

datalist = list(a = matrix(1:10, 5, 2), b = matrix(11:20, 5, 2))

dat <- ldply(datalist)

print(dat)
##    .id  1  2
## 1    a  1  6
## 2    a  2  7
## 3    a  3  8
## 4    a  4  9
## 5    a  5 10
## 6    b 11 16
## 7    b 12 17
## 8    b 13 18
## 9    b 14 19
## 10   b 15 20

如果需要/必须删除.id列。

票数 2
EN

Stack Overflow用户

发布于 2014-04-12 19:54:14

我想你想要do.call(rbind, ...)

代码语言:javascript
运行
复制
do.call(rbind, datalist)
#      [,1] [,2]
# [1,]    1    6
# [2,]    2    7
# [3,]    3    8
# [4,]    4    9
# [5,]    5   10
# [6,]   11   16
# [7,]   12   17
# [8,]   13   18
# [9,]   14   19
#[10,]   15   20

更新2015年9月16日:更有效的大列表方法是

代码语言:javascript
运行
复制
data.table::rbindlist(lapply(datalist, as.data.frame)) 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23035292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档