리스트 (list)
R에서 가장 광범위하게 사용되는 자료구조로 벡터, 행렬, 데이터프레임 및 리스트 등 다양한 자료형의 객체를 원소로 가질 수 있다.
리스트를 인덱싱할 때 대괄호를 겹쳐서 [[ ]] 사용한다.
벡터처럼 대괄호를 하나만 사용하면 해당 원소를 항상 리스트로 출력
하지만 대괄호를 겹쳐서 사용하면 해당 원소를 본래 자료구조로 출력
'겹대괄호' 안에는 인덱스를 단 하나만 지정
리스트 원소에 이름이 있으면 달러 기호 ($)로 해당 원소 선택 가능
리스트$원소명 : 해당 원소를 본래 자료구조로 출력
리스트에 없는 원소명을 지정하면 항상 NULL을 출력
R함수가 실행된 결과로 여러 객체를 함께 반환하려면, 결과를 리스트로 생성하여 반환하는 것이 좋다.
대부분의 R함수는 리스트를 반환할 때, 원소마다 이름을 추가하므로 달러 기호를 사용한 인덱싱이 가능하다.
사용자 정의 함수에서도 활용 가능
list( ) : 리스트 생성함수
원소로 사용될 객체를 콤마로 나열
원소마다 이름 지정 가능, 원소명과 객체를 등호(=)로 연결
num <- seq(from=1, to=10, by=2)
cha <- rep(x = c('a','b'), each=3)
> print(num)
[1] 1 3 5 7 9
> print(cha)
[1] "a" "a" "a" "b" "b" "b"
lst1 <- list(num, cha)
> print(lst1)
[[1]]
[1] 1 3 5 7 9
[[2]]
[1] "a" "a" "a" "b" "b" "b"
> class(lst1) : 리스트의 클래스는 리스트
[1] "list"
> str(object = lst1) : 리스트의 구조를 출력
List of 2
$ : num [1:5] 1 3 5 7 9
$ : chr [1:6] "a" "a" "a" "b" ...
리스트의 인덱싱
1) 겹대괄호 안에 인덱스를 단 하나만 지정한다.
lst1[[1]]
2) 리스트에 원소명이 있으면 달러 기호를 사용할 수 있다.
lst1$a
3) 대괄호를 사용하면 항상 리스트로 출력
lst1[1]
lst1[c(1,3)]
리스트 원소의 추가, 삭제 및 변경
1) 추가 : 리스트의 새로운 원소명에 객체를 할당
lst1$d <- 1:5
2) 삭제 : 삭제할 원소명에 NULL을 할당
lst2$a <- NULL
3) 전체 변경 : 변경할 원소명에 객체를 할당
lst2$b <- letters[1:5]
4) 일부 변경 : 변경할 원소의 일부만 변경
lst2$b[1] <- 'A'
'Data Science > R' 카테고리의 다른 글
[R] 반복문 : if 조건문, ifelse 함수 (0) | 2021.03.15 |
---|---|
R프로그래밍 : 변수(Variable), 객체(Object) (0) | 2021.03.10 |
R프로그래밍 : 데이터프레임(DataFrame) - 생성, 인덱싱, 슬라이싱, 추가, 삭제, 변경 (0) | 2021.03.10 |
R프로그래밍 : 사용자 정의 함수 (0) | 2021.03.10 |
R프로그래밍 : 행렬(matrix) (0) | 2021.03.09 |