首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用r中的串行值重新绑定数据帧

使用r中的串行值重新绑定数据帧
EN

Stack Overflow用户
提问于 2013-09-24 12:27:24
回答 2查看 802关注 0票数 1

我有一系列数据短数据集(2-6行,9cols) (dat1、dat2、dat3...dat1000),它们都具有相同的结构,我试图将它们按名称按升序顺序组合到一个带有rbind的数据帧中。下面是我正在使用的内容和我试图创建的内容的一个小示例。

代码语言:javascript
复制
#create sample data sets
    set.seed(1)
    dat1 = data.frame( A = (1:2),B = rnorm(2, mean = 0.03,sd = 0.01))
    dat2 = data.frame( A = (1:3),B = rnorm(3, mean = 0.05,sd = 0.01))
    dat3 = data.frame( A = (1:4),B = rnorm(4, mean = 0.05,sd = 0.01))
    dat4 = data.frame( A = (1:8),B = rnorm(8, mean = 0.05,sd = 0.01))

#put them into a single data frame, this is an example of the data frame I would like to end up with

    rbind(dat1,dat2,dat3,dat4)

我的问题是如何将数据帧与循环或计数设备绑定在一起,这样我就不必写出rbind中的每个变量(dat1,dat2...dat1000)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-24 12:30:27

这里有一种选择。使用示例中的数据

代码语言:javascript
复制
> do.call(rbind, lapply(paste("dat", 1:4, sep=""), get))
    A          B
1  1 0.02373546
2  2 0.03183643
3  1 0.04164371
4  2 0.06595281
5  3 0.05329508
6  1 0.04179532
7  2 0.05487429
8  3 0.05738325
9  4 0.05575781
10 1 0.04694612
11 2 0.06511781
12 3 0.05389843
13 4 0.04378759
14 5 0.02785300
15 6 0.06124931
16 7 0.04955066
17 8 0.04983810

对于您的全部用例:

代码语言:javascript
复制
do.call(rbind, lapply(paste("dat", 1:1000, sep=""), get))
票数 3
EN

Stack Overflow用户

发布于 2013-09-24 14:47:48

使用data.table::rbindlist

它需要您的每个数据集都是一个data.table,以及列表中的一个元素。下面的例子应该会有帮助。

例如:

代码语言:javascript
复制
DT1 = data.table(A=1:3,B=letters[1:3])
DT2 = data.table(A=4:5,B=letters[4:5])
l = list(DT1,DT2)
rbindlist(l)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18981615

复制
相关文章

相似问题

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