2015-07-29 11 views
6

ecco come posso farlo:R: creare frame di dati vuoto con 200 righe e colonne non

df <- data.frame(a=1:200) 
df$a <- NULL 
df 

risultati:

data frame with 0 columns and 200 rows 

Lo stesso può essere realizzato con un solo comando?

+3

Credo che la prima domanda che viene in mente è _ _ "Perché?". Spidey-sense dice che userai un ciclo 'for' per cercare di riempirlo e probabilmente c'è un modo migliore se pubblichi ciò che stai cercando di ottenere. – hrbrmstr

+0

Controlla anche [qui] (http://stackoverflow.com/questions/9917545/r-define-dimensions-of-empty-data-frame) e [qui] (http://stackoverflow.com/questions/10689055/ create-an-empty-data-frame) – akrun

+1

@hrbrmstr, Nah, era solo una curiosità. So cosa stai pensando, e sì, io combino lapply con Reduce per lo stesso effetto. – January

risposta

13

Questo può funzionare (se la chiamata a 2 funzioni non è considerata 2 comandi):

data.frame(matrix(, nrow=200, ncol=0)) 
#data frame with 0 columns and 200 rows 

Edit: Un'altra opzione è data.frame()[1:200, ]:

data.frame()[1:200, ] 
# data frame with 0 columns and 200 rows 
+0

R dice "missing agument" in 'matrix' –

+1

@SashkoLykhenko quale versione di' R'? (Funziona come previsto con R 3.3.0) – Cath

+1

Infatti, ha funzionato con R 3.4 –

2

Che dire di questo ?

data.frame(row.names = 1:200) 
1

Questo è quello che ho scoperto via dput:

structure(
    list(), 
    .Names = character(0), 
    row.names = c(NA, -200L), 
    class = "data.frame" 
) 
Problemi correlati