Chapter 7 List
List 형태는 항목(Element) 간 타입이나 길이가 달라도 데이터가 결합할 수 있습니다.
7.1 리스트 생성하기
l = list(1:3, 'a', c(TRUE, FALSE, TRUE), c(2.5, 4.2))
str(l)## List of 4
## $ : int [1:3] 1 2 3
## $ : chr "a"
## $ : logi [1:3] TRUE FALSE TRUE
## $ : num [1:2] 2.5 4.2
첫번째 리스트는 정수, 두번째는 문자, 세번째는 논리값, 네번째는 숫자로 이루어져 있습니다.
l = list(1:3, list(letters[1:5], c(TRUE, FALSE, TRUE)))
str(l)## List of 2
## $ : int [1:3] 1 2 3
## $ :List of 2
## ..$ : chr [1:5] "a" "b" "c" "d" ...
## ..$ : logi [1:3] TRUE FALSE TRUE
또한 리스트 내에 리스트를 생성하는 것 역시 가능합니다.
7.2 기존 리스트에 데이터 추가하기
l1 = list(1:3, 'a', c(TRUE, FALSE, TRUE))
str(l1)## List of 3
## $ : int [1:3] 1 2 3
## $ : chr "a"
## $ : logi [1:3] TRUE FALSE TRUE
l2 = append(l1, list(c(2.5, 4.2)))
str(l2)## List of 4
## $ : int [1:3] 1 2 3
## $ : chr "a"
## $ : logi [1:3] TRUE FALSE TRUE
## $ : num [1:2] 2.5 4.2
append() 함수를 이용해 기존 리스트에 추가로 리스트를 붙일 수 있습니다.
l2$item4 = 'new list item'
str(l2)## List of 5
## $ : int [1:3] 1 2 3
## $ : chr "a"
## $ : logi [1:3] TRUE FALSE TRUE
## $ : num [1:2] 2.5 4.2
## $ item4: chr "new list item"
또한 기존 리스트에 달러 사인($)을 입력할 경우, 이름과 함께 리스트가 추가됩니다.
7.3 리스트 추출하기
리스트 역시 대괄호를 이용해 데이터를 추추할 수 있습니다.
l2[1]## [[1]]
## [1] 1 2 3
l2[c(1,3)]## [[1]]
## [1] 1 2 3
##
## [[2]]
## [1] TRUE FALSE TRUE
리스트에 이름이 있을 경우, 이를 이용해 추출도 가능합니다.
l2['item4']## $item4
## [1] "new list item"
대괄호를 두번, 혹은 달러 사인을 이용해 데이터를 추출할 경우 결과물의 형태는 단순화되어 나타납니다.
l2[[1]]## [1] 1 2 3
l2$item4## [1] "new list item"
특정 리스트에서 항목을 추출하기 위해서는 [[와 [를 함께 사용합니다.
l2[[1]]## [1] 1 2 3
l2[[1]][3]## [1] 3