2012-05-08 17 views
6

tengo la siguiente trama de datos:Cómo agregar fila en la parte superior de la trama de datos R

> dat 

    V1 V2 
1 1 6868 
2 2 954 
3 3 88 

Lo que quiero hacer es añadir otra fila en la parte superior de la corriente resultante:

V1 V2 
1 0 10000 
2 1 6868 
3 2 954 
4 3 88 

¿Por qué esto no funciona:

new_dat <- rbind(dat,c(0,10000)) 

Cuál es la forma correcta de hacerlo?

Respuesta

12

Coloque el vector que desee en la parte superior primero:

new_dat <- rbind(c(0,10000), dat) 

Pero, usando rbind aquí asume que todas las columnas son numéricos, y que están asumiendo la columna ordena el mismo que el vector. En general, usted debe enlazar data.frames juntos, algo como esto, donde se pueden mezclar tipos de columna, si es necesario:

rbind(data.frame(V1 = 0, V2 = 10000), dat) 

Hay muchas otras opciones para una fusión más general de los datos de este tipo.

8

¿Por qué no funciona: new_dat < - rbind (dat, c (0,10000))

Está en el orden equivocado, basta con ver la salida:

R> rbind(dat, c(0, 1000)) 
    V1 V2 
1 1 6868 
2 2 954 
3 3 88 
4 0 1000 

en su lugar, cambiar el orden de los argumentos:

rbind(c(0,10000), dat) 

para conseguir lo que desea. Alternativamente, usted podría tener

rbind(data.frame(V1 = 0, V2 = 10000), dat) 
Cuestiones relacionadas