Nel codice seguente, mi aspettavo qualcosa di lunghezza 96, ma ottengo un elenco di lunghezza 48. Puoi spiegare questo risultato?La lista di riempimento con vettori vuoti ne modifica la lunghezza
num_empty = 96
empty_vecs = as.list(1:num_empty)
for(i in 1:num_empty){empty_vecs[[i]] = c()}
length(empty_vecs)
[1] 48
Ora risponderò alla domanda che mi ha portato ad incontrare questo comportamento. La domanda iniziale era: "Come faccio a creare un elenco di vettori vuoti in R?" e la risposta è stata "Sostituire c()
con character()
nel codice sopra."
Un altro modo è: 'rep (list (NULL), 96)' –
Asa side note, se lo fai nell'ordine inverso 'for (i in num_empty: 1) {empty_vecs [[i]] = c()}' l'elenco sarà vuoto – agstudy
Potrei rendere più chiaro che 'c()' è una funzione che restituisce 'NULL' quando non viene passato alcun parametro nell'output. 'c()' non è la funzione di "vettore" che tutti sembrano pensare che sia. È per concatenare i vettori. 'c()' non crea un vettore vuoto allo stesso modo 'character()' o 'numereric()' fa. – MrFlick