2012-05-08 18 views
6

Ho la seguente struttura dei dati:Come aggiungere fila sulla cima dei frame di dati R

> dat 

    V1 V2 
1 1 6868 
2 2 954 
3 3 88 

Quello che voglio fare è quello di aggiungere un'altra riga in cima a quello attuale risultante:

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

Perché questo non funziona:

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

Qual è il modo corretto per farlo?

risposta

12

Mettere il vettore che si desidera in cima prima:

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

Ma, usando rbind qui presuppone che tutti le colonne sono numerici, e si stanno assumendo colonna ordina la stessa il vettore. In generale, si dovrebbe associare data.frames insieme, qualcosa come questo, in cui è possibile mescolare tipi di colonna, se necessario:

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

Ci sono molte altre opzioni per un'unione più generale dei dati come questo.

8

Perché non questo lavoro: new_dat < - rbind (dat, c (0,10000))

E 'nell'ordine sbagliato, basta guardare l'output:

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

Invece, scambiare l'ordine degli argomenti:

rbind(c(0,10000), dat) 

per ottenere ciò che si desidera. In alternativa, si potrebbe avere

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