Кто-нибудь знает функцию R, которая вернет количество элементов в списке?
Подсчитать количество объектов в списке
Ответ 1
Ответ 2
Совет для 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
рассматривает data.frame как список:
> 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()
также будет работать (но это трюк, когда ваш data.frame имеет только один столбец):
> length (df)
[1] 30
> length (df[[1]])
[1] 2
Ответ 3
Я потратил годы, пытаясь понять это, но это просто! Вы можете использовать length(·)
. length(mylist)
сообщит вам, сколько объектов mylist
содержит.
... и просто понял, что кто-то уже ответил на это - извините!
Ответ 4
Позвольте создать пустой список (не обязательно, но полезно знать):
> 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
Ответ 5
Вы также можете использовать 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