Risposte:
Ottieni o imposta la lunghezza dei vettori (comprese le liste) e dei fattori, e di qualsiasi altro oggetto R per il quale è stato definito un metodo.
Ottieni la lunghezza di ogni elemento di una lista o di un vettore atomico (is.atomic) come numero intero o vettore numerico.
Consiglio per i R
nuovi arrivati come me: attenzione, di seguito è riportato un elenco di un unico oggetto :
> mylist <- list (1:10)
> length (mylist)
[1] 1
In tal caso non stai cercando la lunghezza della lista, ma il suo primo elemento:
> length (mylist[[1]])
[1] 10
Questa è una lista "vera":
> mylist <- list(1:10, rnorm(25), letters[1:3])
> length (mylist)
[1] 3
Inoltre, sembra che R
consideri un data.frame come un elenco:
> df <- data.frame (matrix(0, ncol = 30, nrow = 2))
> typeof (df)
[1] "list"
In tal caso potresti essere interessato ncol()
e nrow()
piuttosto che length()
:
> ncol (df)
[1] 30
> nrow (df)
[1] 2
Anche se length()
funzionerà anche (ma è un trucco quando data.frame ha solo una colonna):
> length (df)
[1] 30
> length (df[[1]])
[1] 2
Creiamo un elenco vuoto (non obbligatorio, ma utile a sapersi):
> mylist <- vector(mode="list")
Mettiamo alcune cose in esso: 3 componenti / indici / tag (come vuoi chiamarli) ciascuno con quantità diverse di elementi:
> mylist <- list(record1=c(1:10),record2=c(1:5),record3=c(1:2))
Se sei interessato solo al numero di componenti in un elenco, utilizza:
> length(mylist)
[1] 3
Se sei interessato alla lunghezza degli elementi in un componente specifico di una lista usa: (entrambi fanno riferimento allo stesso componente qui)
length(mylist[[1]])
[1] 10
length(mylist[["record1"]]
[1] 10
Se sei interessato alla lunghezza di tutti gli elementi in tutti i componenti della lista usa:
> sum(sapply(mylist,length))
[1] 17
Puoi anche usare unlist()
, che è spesso utile per la gestione degli elenchi:
> mylist <- list(A = c(1:3), B = c(4:6), C = c(7:9))
> mylist
$A
[1] 1 2 3
$B
[1] 4 5 6
$C
[1] 7 8 9
> unlist(mylist)
A1 A2 A3 B1 B2 B3 C1 C2 C3
1 2 3 4 5 6 7 8 9
> length(unlist(mylist))
[1] 9
unlist () è un modo semplice per eseguire anche altre funzioni sugli elenchi, come ad esempio:
> sum(mylist)
Error in sum(mylist) : invalid 'type' (list) of argument
> sum(unlist(mylist))
[1] 45