Contare il numero di oggetti nell'elenco [chiuso]


Risposte:


170

lunghezza (x)

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.

lunghezze (x)

Ottieni la lunghezza di ogni elemento di una lista o di un vettore atomico (is.atomic) come numero intero o vettore numerico.


85

Consiglio per i Rnuovi 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 Rconsideri 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

12

Ho passato anni a cercare di capirlo, ma è semplice! Puoi usare length(·). length(mylist)ti dirà il numero di oggetti che mylistcontiene.

... e ho appena realizzato che qualcuno aveva già risposto a questo - scusa!


9

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

7

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.