Hitung jumlah objek dalam daftar [tertutup]


Jawaban:


170

panjang (x)

Dapatkan atau setel panjang vektor (termasuk daftar) dan faktor, dan objek R lainnya yang metode telah ditentukan.

panjang (x)

Dapatkan panjang setiap elemen dari list atau vektor atom (is.atomic) sebagai vektor bilangan bulat atau numerik.


85

Saran untuk Rpendatang baru seperti saya: berhati-hatilah, berikut ini adalah daftar satu objek  :

> mylist <- list (1:10)
> length (mylist)
[1] 1

Dalam kasus seperti ini, Anda tidak mencari panjang daftar, tetapi elemen pertamanya:

> length (mylist[[1]])
[1] 10

Ini adalah daftar yang "benar":

> mylist <- list(1:10, rnorm(25), letters[1:3])
> length (mylist)
[1] 3

Juga, tampaknya yang Rmenganggap data.frame sebagai daftar:

> df <- data.frame (matrix(0, ncol = 30, nrow = 2))
> typeof (df)
[1] "list"

Dalam kasus seperti itu, Anda mungkin tertarik ncol()dan nrow()bukannya length() :

> ncol (df)
[1] 30
> nrow (df)
[1] 2

Meskipun length()juga akan berfungsi (tetapi ini adalah trik ketika data.frame Anda hanya memiliki satu kolom):

> length (df)
[1] 30
> length (df[[1]])
[1] 2

12

Saya menghabiskan waktu lama untuk mencoba mencari tahu ini tetapi itu sederhana! Anda bisa menggunakan length(·). length(mylist)akan memberi tahu Anda jumlah objekmylist berisi.

... dan baru menyadari seseorang telah menjawab ini- maaf!


9

Mari buat daftar kosong (tidak wajib, tapi bagus untuk diketahui):

> mylist <- vector(mode="list")

Mari kita masukkan beberapa hal di dalamnya - 3 komponen / indeks / tag (apa pun yang Anda ingin menyebutnya) masing-masing dengan jumlah elemen yang berbeda:

> mylist <- list(record1=c(1:10),record2=c(1:5),record3=c(1:2))

Jika Anda hanya tertarik pada jumlah komponen dalam daftar gunakan:

> length(mylist)
[1] 3

Jika Anda tertarik dengan panjang elemen dalam komponen tertentu dari daftar, gunakan: (keduanya merujuk komponen yang sama di sini)

length(mylist[[1]])
[1] 10
length(mylist[["record1"]]
[1] 10

Jika Anda tertarik dengan panjang semua elemen di semua komponen daftar gunakan:

> sum(sapply(mylist,length))
[1] 17

7

Anda juga bisa menggunakan unlist(), yang sering berguna untuk menangani daftar:

> 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 () adalah cara sederhana untuk menjalankan fungsi lain di daftar, seperti:

> sum(mylist)
Error in sum(mylist) : invalid 'type' (list) of argument

> sum(unlist(mylist))
[1] 45
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.