Количество объектов в списке [закрыто]


кто-нибудь знает функцию R, которая возвращает количество элементов в списке?

5 82

5 ответов:

советы R новички, как я: будьте осторожны, ниже приведен список один объект:

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

в таком случае вы ищете не длину списка, а его первый элемент:

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

это "истинный" список :

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

кроме того, кажется, что R считает данные.кадр в виде списка:

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

в таком случае вас может заинтересовать ncol() и nrow() а не length():

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

хотя length() также будет работать (но это трюк, когда ваши данные.рамка имеет только один столбец) :

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

Я потратил века, пытаясь понять это, но это просто! Вы можете использовать length(·). length(mylist) скажет вам количество объектов mylist содержит.

... и только сейчас понял, кто-то уже ответил на это - извините!

давайте создадим пустой список (не обязательно, но полезно знать):

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

давайте положим в него некоторые вещи - 3 компонента / индекса / теги (все, что вы хотите назвать) каждый с различным количеством элементов:

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

если вас интересует только количество элементов в списке:

> length(mylist)
[1] 3

если вас интересует длина элементов в определенном компоненте списка, используйте: (оба ссылаются на один и тот же компонент здесь)

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

если вас интересует длина всех элементов во всех компонентах списка используйте:

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

вы также можете использовать unlist(), что часто полезно для обработки списков:

> 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 () - это простой способ выполнения других функций в списках, таких как:

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

> sum(unlist(mylist))
[1] 45