해보記/R

<記> R List

Light Pillar 2019. 12. 5. 22:20

리스트(List)

리스트는 서로 다른 형태(mode)의 자료를 포함하는 하나의 객체이다.

 

list( )

> li <- list("top", c(2, 4, 6), c(T, F, T))         # list(문자, 숫자, 논리형 객체)
> li[[1]]                                              # [[1]] : 첫 번째 성분
> mat1 <- matrix(1:4, nrow=2)
> list1 <- list("A", 1:8, mat1)                    # list(문자, 숫자, 행렬)
> son <- list(son.name = c("Minsu", "Minchul"), son.cnt = 2, son.age = c(2, 6))

# 리스트 속성 : 벡터의 속성과 같이 자료의 개수, 형태, 구성요소의 이름 등으로 구성
> length(son)               # 리스트 자료의 개수
> mode(son)                # 리스트 자료의 형태
> names(son)               # 리스트 각 구성요소의 이름

 

리스트의 성분 추출

기본적인 성분 추출 방법은 [[ ]]를 사용하여 성분의 index를 이용하는 방법이다. 만약 성분의 이름을 지정하였다면 $ 연산자를 이용하여 특정 성분을 추출할 수 있다. 단 성분의 원소를 추출하는 경우에는 [ ]를 사용한다.

> exm <- list(c("Abe", "Bob", "Carol", "Deb"), c("Weight", "Waist"))     # exm 리스트 생성
> exm[[2]]                                                # 리스트의 2번째 성분
> exm[[2]][2]                                             # 2번째 성분 중 2번째 원소
> names(exm) <- c("Rows", "Columns")           # 리스트에 성분 이름 부여
> exm$Rows                                             # 리스트의 Rows 성분만 추출
> exm$Rows[2]                                          # 리스트의 Rows 성분 중 2번째 원소
> exm$Columns                                         # 리스트의 Columns 성분만 추출

> list1 <- list("A", 1:8)                        # 2개의 성분을 갖는 리스트 생성
> list1[[3]] <- list(c(T, F))                     # 3번째 성분 추가
> list1[[2]][9] <- 9                             # 2번째 성분에 9번째 원소 추가
> list1[3] <- NULL                             # 3번째 성분 삭제
> list1[[2]] <- list1[[2]][-9]                    # 2번째 성분의 9번째 원소 삭제

 

# 리스트는 성분에 리스트와 벡터 등을 사용할 수 있다.
> a <- 1:10
> b <- 11:15
> klist <- list(vec1 = a, vec2 = b, description = "example")
> klist[[2]][5]                            # 두 번째 성분 vec2의 5번째 원소
> klist$vec2[c(2, 3)]                    # vec2 의 2, 3번째 원소

'해보記 > R' 카테고리의 다른 글

<記> R 데이터 핸들링 (1)  (0) 2019.12.10
<記> R 연산자  (0) 2019.12.06
<記> R data.frame  (0) 2019.12.04
<記> R Array  (0) 2019.12.03
<記> R Matrix  (0) 2019.12.03