본문 바로가기
5. 자료구조/4) 리스트 | list()

[R 기초] 리스트 인덱싱 하는 방법

by makhimh 2020. 9. 16.
반응형

[R 기초] 리스트 인덱싱 하는 방법


먼저 리스트를 하나 정의하겠습니다. 벡터 두개와 데이터프레임하나를 넣었습니다. 


v1=c(1,2,3)

v2=c("a","b","c")

d1=data.frame(v1,v2)


mylist=list(v1,v2,d1)


아래와 같이 생성되었습니다. 


> mylist

[[1]]

[1] 1 2 3


[[2]]

[1] "a" "b" "c"


[[3]]

  v1 v2

1  1  a

2  2  b

3  3  c


리스트 인덱싱은 크게 세가지가 있는데요. 리스트 자체를 인덱싱하는 방법과, 구성요소에 접근하는 방법과, 구성요소의 원소에 접근하는 방법입니다. 


1) 리스트 인덱싱


첫번째 리스트에 접근해보겠습니다. 


> mylist[1]

[[1]]

[1] 1 2 3


이렇게 접근할 경우 자료형은 list가 됩니다. 


첫번째 리스트와 두번째 리스트에 연달아 접근해봅시다.


> mylist[1:2]

[[1]]

[1] 1 2 3


[[2]]

[1] "a" "b" "c"


첫번째 리스트와 세번째 리스트에 접근해봅시다.


> mylist[c(1,3)]

[[1]]

[1] 1 2 3


[[2]]

  v1 v2

1  1  a

2  2  b

3  3  c



2) 구성요소에 접근


리스트 구성요소에 접근하면 자료형이 해당 구성요소의 자료형이 됩니다. 첫번째 구성요소에 접근해봅시다. 자료형이 벡터입니다. 


> mylist[[1]]

[1] 1 2 3


세번째 구성요소에 접근해봅시다. 자료형이 데이터프레임입니다. 


> mylist[[3]]

  v1 v2

1  1  a

2  2  b

3  3  c



3) 구성요소의 원소에 접근


리스트 구성요소에 접근하면 자료형이 해당 구성요소의 자료형이 됩니다. 첫번째 구성요소에 접근해봅시다. 자료형이 벡터입니다. 


이때는 각 구성요소에 먼저 접근한 뒤, 해당 구성요소 자료형에 맞는 인덱싱을 사용해주시면 됩니다.


첫번째 구성요소의 두번째 원소에 접근해봅시다. 벡터 인덱싱입니다. 


> mylist[[1]][2]

[1] 2


세번째 구성요소의 2행에 접근해봅시다. 데이터프레임 인덱싱입니다. 


> mylist[[3]][2,]

  v1 v2

2  2  b


반응형

댓글