[R기초] 리스트는 언제 사용할까?
R을 공부하다 보면 자료구조라는 것을 배우게 됩니다. 자료를 담는 그릇인데 아래와 같은 것들이 있습니다.
- 벡터
- 행렬
- 배열
- 리스트
- 요인
- 데이터프레임
- 테이블
이들 중 "이건 왜있지?" 라는 생각이 드는 자료구조가 있었습니다. 바로 '리스트'입니다. 지금은 R 초보자는 벗어났다고 생각하는데, 초보 시절에는 리스트의 존재 이유를 알기가 어려웠습니. 따라서 거의 사용하지도 않았습니다. 지금은 없어서는 안될 존재입니다. 오늘은 내가 경험한 리스트의 용도 중 하나를 공유하려고 합니다. 상황을 하나 가정하겠습니다.
10개의 벡터를 만들어야 하는 상황입니다. 10개의 벡터를 만들고 각각의 벡터에 0과 10사이의 임의의 숫자 5개를 넣으려고 합니다.
아래와 같은 코드를 짜는 것이 가장 먼저 드는 생각입니다.
v1=sample(1:10,5)
v2=sample(1:10,5)
v3=sample(1:10,5)
v4=sample(1:10,5)
v5=sample(1:10,5)
v6=sample(1:10,5)
v7=sample(1:10,5)
v8=sample(1:10,5)
v9=sample(1:10,5)
v10=sample(1:10,5)
리스트를 이용하면 아래와 같이 간편하게 10개의 벡터를 만들 수 있습니다. 벡터 100개를 생성해야 한다고 생각해보시면 쉽게 이해되실겁니다. 또 인덱싱을 이용하여 벡터각각에 접근할 수 있기 때문에 이후 벡터들을 다루는 것도 훨씬 편해집니다.
mylist=list()
for (i in 1:10) {
mylist[[i]]=sample(1:10,5)
}
> mylist
[[1]]
[1] 8 6 7 3 4
[[2]]
[1] 3 8 10 7 4
[[3]]
[1] 3 9 6 5 2
[[4]]
[1] 4 3 1 8 5
[[5]]
[1] 3 10 6 9 8
[[6]]
[1] 7 5 6 4 2
[[7]]
[1] 5 10 3 7 6
[[8]]
[1] 3 8 5 9 7
[[9]]
[1] 7 2 6 3 8
[[10]]
[1] 4 9 10 7 8
'5. 자료구조 > 4) 리스트 | list()' 카테고리의 다른 글
[R코딩] 리스트 인덱싱 할때, 요소 자체의 자료형으로 출력 (0) | 2020.12.16 |
---|---|
[R 코딩] 리스트를 데이터프레임으로 만드는 stack 함수 (0) | 2020.12.16 |
[R 코딩] list 를 벡터로 만들기 (unlist 함수) (0) | 2020.12.15 |
[R 기초] 리스트 인덱싱 하는 방법 (0) | 2020.09.16 |
[R기초] 리스트 정의하는 방법 + 자료구조 확인 (0) | 2019.11.30 |
댓글