반응형
리스트는 성격이 다른 자료구조(벡터, 행렬, 리스트, 데이터프레임 등)를 객체로 생성할 수 있다.
특징:
- 하나의 메모리 영역에는 키(key)와 값(value)이 한 쌍으로 저장된다.
- C 언어의 구조체, Python의 dict(딕셔너리) 자료구조와 유사하다.
- key를 통해서 value를 불러올 수 있는데, value에 해당하는 자료는 Vector, Matrix, Array, List, DataFrame 등 대부분의 R 자료구조의 객체가 저장될 수 있다.
- 함수 내에서 여러 값을 하나의 키로 묶어서 반환하는 경우 유용하다.
- 리스트 생성 함수: list()
- 리스트 자료 처리 함수: unlist(), lapply(), sapply()
1차원 리스트 객체 생성하기
리스트에 저장된 데이터를 출력하면 [[n]]과 [n] 형식으로 출력되는데, 여기서 [[n]]은 리스트를 구성하는 하나의 원소에서 key에 해당하고, [n]은 value에 해당한다. 또한 [[n]]에서 n은 리스트 자료구조에 저장된 자료의 위치를 의미한다.
함수 예시 |
출력 결과 list_one #리스트 출력시 |
설명 | 비고 |
list_one <- list("Pengsoo", "age", 10) |
[[1]] |
1개의 값을 갖는 리스트 객체 생성 | key를 별도로 지정하지 않고, 3개의 value만 나열하여 객체 생성 |
list_one <- unlist(list_one) | [1] "Pengsoo" "age" "10" | 벡터 구조로 변경 | 벡터 자료구조의 특징 때문에 10은 문자열로 처리됨 |
list_one <- list(c(1:5), c(8:10)) | [[1]] [1] 1 2 3 4 5 [[2]] [1] 8 9 10 |
1개 이상의 값을 갖는 리스트 객체 생성 | value에 저장될 자료는 c() 함수를 이용 |
list_one <- list(name = c("펭수", "김명중"), age = c(10,63), gender = c("Unknown", "Male")) | $name [1] "펭수" "김명중" $age [1] 10 63 $gender [1] "Unknown" "Male" |
key와 value 형식으로 리스트 생성. |
리스트 객체에서 key는 '$' 기호가 붙어 표시됨. 이 key를 이용해 value에 접근 가능. |
> list_one$name > length(list_one) |
[1] "펭수" "김명중" [1] 3 |
key를 이용하여 value에 접근하기 | '변수명$키' 형식으로 원소를 호출 |
List 객체 자료 처리 함수
함수 예시 | 설명 |
lapply(c(a, b), max) |
리스트 객체에 함수 적용 리스트 형태로 결과 반환 |
sapply(c(a, b), max) |
리스트 객체에 함수 적용 벡터 형식으로 결과 반환 |
다차원 List 객체 생성
리스트 자료구조에 또 다른 리스트가 중첩된 자료 구조를 다차원(중첩) 리스트라고 한다. 즉 1차원 리스트를 구성하는 각 원소의 value가 리스트로 구성된 경우이다. 이러한 다차원 리스트는 구조적인 특징을 고려하여 다차원 리스트의 자료를 처리하는 별도의 함수도 제공한다.
ex)
multi_list <- list(c1 = list(1, 2, 3),
c2 = list(10, 20, 30),
c3 = list(100, 200, 300))
반응형
'빅데이터 > R' 카테고리의 다른 글
[R] 기술 통계량 처리 관련 내장함수 (0) | 2019.11.28 |
---|---|
[R] 연산자(Operator) (0) | 2019.11.28 |
[R] Vector 벡터형 자료구조 (0) | 2019.11.28 |
[R] 데이터 유형과 구조 5가지 (0) | 2019.11.28 |
[R] 함수와 패키지 (0) | 2019.11.28 |