2015-09-22 12 views
12

1.Creare una cornice vuota datiCreare un frame di dati vuoto con nomi di colonne assegnando un vettore stringa?

y <- data.frame() 

2.assign x, un vettore stringa di y come i nomi di colonna

x <- c("name", "age", "gender") 
colnames(y) <- x 

risultati:

Error in `colnames<-`(`*tmp*`, value = c("name", "age", "gender")) : 
    'names' attribute [3] must be the same length as the vector [0] 

realtà, la la lunghezza x è dinamica, quindi

y <- data.frame(name=character(), age=numeric(), gender=logical()) 

non è un modo efficiente per denominare la colonna. Come posso risolvere il problema? thx

+6

Hai visto [questo] (http://stackoverflow.com/questions/ 10689055/creare-un-vuoto-data-frame)? –

+0

Se si desidera creare un data.frame vuoto con nomi dinamici (nomi in una variabile), questo può aiutare: nomi <- c ("v", "u", "w") df <- dati. frame() per (k nei nomi) df [[k]] <- as.numeric() È possibile modificare il tipo anche in caso di necessità. –

risposta

50

ne dite,

df <- data.frame(matrix(ncol = 3, nrow = 0)) 
x <- c("name", "age", "gender") 
colnames(df) <- x 

di fare tutto questo in operazioni one-liner

setNames(data.frame(matrix(ncol = 3, nrow = 0)), c("name", "age", "gender")) 

#[1] name age gender 
#<0 rows> (or 0-length row.names) 
Problemi correlati