Количество объектов в списке [закрыто]
кто-нибудь знает функцию R, которая возвращает количество элементов в списке?
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