답변:
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
빈 목록을 만들어 봅시다 (필수는 아니지만 알아두면 좋습니다).
> 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