9.6 리스트의 조작
아래와 같이 리스트에 요소를 추가, 삭제 그리고 업데이트 할 수 있습니다. 리스트 요소의 추가는 리스트의 끝에서만 이루어집니다.
키워드가 정해지지 않은 리스트의 경우는 정수형의 색인 번호를 이용합니다.
# 벡터, 행렬 그리고 리스트를 요소로 포함하는 리스트를 생성합니다.
<- list(c("Jan","Feb","Mar"),
list_data matrix(c(3,9,5,1,-2,8), nrow = 2),
list("green",12.3))
# 리스트의 요소가 정수형으로 색인이 됩니다. list_data
## [[1]]
## [1] "Jan" "Feb" "Mar"
##
## [[2]]
## [,1] [,2] [,3]
## [1,] 3 5 -2
## [2,] 9 1 8
##
## [[3]]
## [[3]][[1]]
## [1] "green"
##
## [[3]][[2]]
## [1] 12.3
# 리스트 요소에 이름을 부여합니다.
names(list_data) <- c("1st Quarter", "A_Matrix", "A Inner list")
# 리스트의 요소에 정수형 이름이 부여되어 있습니다. list_data
## $`1st Quarter`
## [1] "Jan" "Feb" "Mar"
##
## $A_Matrix
## [,1] [,2] [,3]
## [1,] 3 5 -2
## [2,] 9 1 8
##
## $`A Inner list`
## $`A Inner list`[[1]]
## [1] "green"
##
## $`A Inner list`[[2]]
## [1] 12.3
## 정수형의 색인 번호를 이용하여 리스트를 조작할 수 있습니다.
# 리스트에 요소를 추가합니다.
4] <- "New element" # 리스트에 4번째 요소를 추가하고 "New Element" 값을 할당합니다.
list_data[# 수정된 리스트를 확인합니다. list_data
## $`1st Quarter`
## [1] "Jan" "Feb" "Mar"
##
## $A_Matrix
## [,1] [,2] [,3]
## [1,] 3 5 -2
## [2,] 9 1 8
##
## $`A Inner list`
## $`A Inner list`[[1]]
## [1] "green"
##
## $`A Inner list`[[2]]
## [1] 12.3
##
##
## [[4]]
## [1] "New element"
# NULL을 이용하여 마지막 요소를 제거합니다.
4] <- NULL # NULL 값을 입력하면 4번째 요소가 리스트에서 제거됩니다.
list_data[# 4번째 요소가 없음을 알 수 있습니다. list_data
## $`1st Quarter`
## [1] "Jan" "Feb" "Mar"
##
## $A_Matrix
## [,1] [,2] [,3]
## [1,] 3 5 -2
## [2,] 9 1 8
##
## $`A Inner list`
## $`A Inner list`[[1]]
## [1] "green"
##
## $`A Inner list`[[2]]
## [1] 12.3
# 3번째 요소 값을 수정합니다.
3] <- "updated element"
list_data[ list_data
## $`1st Quarter`
## [1] "Jan" "Feb" "Mar"
##
## $A_Matrix
## [,1] [,2] [,3]
## [1,] 3 5 -2
## [2,] 9 1 8
##
## $`A Inner list`
## [1] "updated element"
## 키워드를 이용하여 리스트를 조작하면 다음과 같습니다.
# 리스트에 요소를 추가합니다.
$new <- "New element" # 네 번째 요소의 태그가 new가 되면, 그 값은 "New Element"가 할당됩니다.
list_datanames(list_data) # list_data의 키워드 목록을 확인합니다.
## [1] "1st Quarter" "A_Matrix" "A Inner list" "new"
$new # $ 연산자를 이용하여 new 요소의 값을 확인합니다. list_data
## [1] "New element"
# NULL을 이용하여 마지막 요소를 제거합니다.
$new <- NULL # new 요소의 값을 제거합니다.
list_data# 수정된 리스트를 확인합니다. list_data
## $`1st Quarter`
## [1] "Jan" "Feb" "Mar"
##
## $A_Matrix
## [,1] [,2] [,3]
## [1,] 3 5 -2
## [2,] 9 1 8
##
## $`A Inner list`
## [1] "updated element"
# 3번째 요소 값을 수정합니다.
$`A Inner list` <- list("green",12.3) # 태그에 공란이 있는 경우 ``로 태그를 묶어 줍니다.
list_data# `A Inner list`의 데이터를 "list("green",12.3)"로 수정합니다.
# 수정된 값을 확인합니다. list_data
## $`1st Quarter`
## [1] "Jan" "Feb" "Mar"
##
## $A_Matrix
## [,1] [,2] [,3]
## [1,] 3 5 -2
## [2,] 9 1 8
##
## $`A Inner list`
## $`A Inner list`[[1]]
## [1] "green"
##
## $`A Inner list`[[2]]
## [1] 12.3
# $`A Inner list` 요소가 다음과 같음을 확인할 수 있습니다.
# $`A Inner list`[[1]], $`A Inner list`[[2]]