1.7 리스트(Lists)
리스트는 객체의 묶음이다. 단일 리스트는 모든 종류의 요소들(문자 벡터, 숫자 벡터, 행렬, 다른 리스트 등)을 포함할 수 있다. 리스트의 요소들은 보다 쉬은 접근을 위해 이름이 종종 부여된다.
<- list(boo=v1, foo=v2, moo=v3, zoo="Animals!") # 요소별 이름을 갖는 리스트
l1 l1
## $boo
## [1] 1 2 3 4 5 6 7 8 9 10 NA NA NA NA NA
##
## $foo
## [1] 1 1 1 1 1
##
## $moo
## [1] TRUE TRUE FALSE
##
## $zoo
## [1] "Animals!"
<- list(v1, v2, v3, "Animals!") # 요소별 이름이 갖지 않는 리스트
l2 l2
## [[1]]
## [1] 1 2 3 4 5 6 7 8 9 10 NA NA NA NA NA
##
## [[2]]
## [1] 1 1 1 1 1
##
## [[3]]
## [1] TRUE TRUE FALSE
##
## [[4]]
## [1] "Animals!"
빈(empty) 리스트 생성 : list()
함수 또는 NULL
사용
<- list()
l3 <- NULL l4
리스트 요소 접근 :
"boo"] # 한 개의 대괄호로 "boo" 요소에 접근: 그 결과는 리스트 l1[
## $boo
## [1] 1 2 3 4 5 6 7 8 9 10 NA NA NA NA NA
"boo"]] # 이중 대괄호로 "boo" 요소에 접근 : 그 결과는 숫자 벡터 v1 l1[[
## [1] 1 2 3 4 5 6 7 8 9 10 NA NA NA NA NA
1]] # 리스트의 첫 요소를 반환, 위와 동일 : 결과는 숫자 벡터 v1 l1[[
## [1] 1 2 3 4 5 6 7 8 9 10 NA NA NA NA NA
$boo # 이중 대괄호와 마찬가지로, $ 연산자로 "boo" 요소에 접근 l1
## [1] 1 2 3 4 5 6 7 8 9 10 NA NA NA NA NA
리스트에 요소 추가 :
1]] <- 11 # 빈 리스트 l3의 첫 번째 요소로 11을 추가
l3[[ l3
## [[1]]
## [1] 11
3]] <- c(22, 23) # 빈 리스트 l4의 3번째 요소로 벡터 추가
l4[[ l4
## [[1]]
## NULL
##
## [[2]]
## NULL
##
## [[3]]
## [1] 22 23
리스트 l4
에 3번 째 요소를 추가했기 때문에, 첫 번째와 두 번째 요소가 생성되지만 그 값은 비어 있는 NULL
이다.
5]] <- "More elements!" # 네 개의 요소를 갖는 리스트 l1에, 5번째 요소를 추가
l1[[ l1
## $boo
## [1] 1 2 3 4 5 6 7 8 9 10 NA NA NA NA NA
##
## $foo
## [1] 1 1 1 1 1
##
## $moo
## [1] TRUE TRUE FALSE
##
## $zoo
## [1] "Animals!"
##
## [[5]]
## [1] "More elements!"
8]] <- 1:11 # 리스트 l1의 8번쨰 요소에 1:11 벡터 추가
l1[[ l1
## $boo
## [1] 1 2 3 4 5 6 7 8 9 10 NA NA NA NA NA
##
## $foo
## [1] 1 1 1 1 1
##
## $moo
## [1] TRUE TRUE FALSE
##
## $zoo
## [1] "Animals!"
##
## [[5]]
## [1] "More elements!"
##
## [[6]]
## NULL
##
## [[7]]
## NULL
##
## [[8]]
## [1] 1 2 3 4 5 6 7 8 9 10 11
리스트 l1
에 8번째 요소를 추가했지만, 6번째와 7번째는 그러지 않았다. 따라서 6번째와 7번째 요소는 비어있다(NULL
).
$Something <- "A thing" # "Something"이라는 이름의 요소로 "A thing" 값을 추가
l1 l1
## $boo
## [1] 1 2 3 4 5 6 7 8 9 10 NA NA NA NA NA
##
## $foo
## [1] 1 1 1 1 1
##
## $moo
## [1] TRUE TRUE FALSE
##
## $zoo
## [1] "Animals!"
##
## [[5]]
## [1] "More elements!"
##
## [[6]]
## NULL
##
## [[7]]
## NULL
##
## [[8]]
## [1] 1 2 3 4 5 6 7 8 9 10 11
##
## $Something
## [1] "A thing"