rbind кадры данных с последовательными значениями в r

У меня есть серия коротких наборов данных (2-6 строк, 9cols) (dat1, dat2, dat3 ... dat1000), которые имеют одинаковую структуру, и я пытаюсь объединить их в порядке возрастания по имени в один фрейм данных с rbind. Вот небольшой пример того, что я использую и что пытаюсь создать.

#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).


person Boogi    schedule 24.09.2013    source источник


Ответы (2)


Вот одна альтернатива. Используя данные в вашем примере

> 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

Для вашего полного случая использования:

do.call(rbind, lapply(paste("dat", 1:1000, sep=""), get))
person Jilber Urbina    schedule 24.09.2013

Используйте 1_.

Ему необходимо, чтобы каждый из ваших наборов данных был таблицей data.table и элементом списка. Пример ниже должен помочь.

eg.

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)
person TheComeOnMan    schedule 24.09.2013