2012-03-18 14 views
10

¿Cómo puedo evaluar una cadena de carácter de clase como marco de datos?R evaluar cadena como marco de datos

Concretamente, tengo varios marcos de datos digamos: x0, x1, x3:

x0 <- data.frame(a=1,b="a") 
x1 <- data.frame(a=2,b="b") 
x2 <- data.frame(a=3,b="c") 

Tienen todos la misma estructura y me gustaría combinarlos con rbind. Para evitar llamar a cada marco de datos solo utilizo la expresión regular:

x <- grep("x\\d",ls(),perl=TRUE,value=TRUE) 

Esto me da un vector de carácter de clase. Ahora, me gustaría combinarlos con una trama de datos llamada x.all:

x.all <- rbind(x) 

Lo que se obtiene es una matriz de dimensión (1,3). ¿Alguien puede darme una pista? Muchas gracias por ayuda.

Respuesta

8

Usando get y do.call:

do.call(rbind, lapply(x, get)) 
# a b 
# 1 1 a 
# 2 2 b 
# 3 3 c 
+0

Muchas gracias! No lo sabía. Llama. Es una función poderosa. – giordano

Cuestiones relacionadas