반응형
R의 자료구조(2)
Chocochip
2018년 1월 5일
이 자료는 R markdown에서 작성하였습니다. 참고문헌: 빅데이터 통계 분석과 그래픽용 프로그래밍 언어의 대표 주자! 오픈소스 R
리스트
- 리스트(list)는 리스트를 포함하여 다른 타입의 원소들을 포함할 수 있다.
- 리스트 생성: list()
simple_list <- list(1:4, rep(3,5), "cat")
str(simple_list)
## List of 3
## $ : int [1:4] 1 2 3 4
## $ : num [1:5] 3 3 3 3 3
## $ : chr "cat"
other_list <- list(1:4, simple_list)
str(simple_list)
## List of 3
## $ : int [1:4] 1 2 3 4
## $ : num [1:5] 3 3 3 3 3
## $ : chr "cat"
- 리스트와 일반 벡터 결합: c()
new_list <- c(simple_list, c(3,4), seq(5,6))
new_list
## [[1]]
## [1] 1 2 3 4
##
## [[2]]
## [1] 3 3 3 3 3
##
## [[3]]
## [1] "cat"
##
## [[4]]
## [1] 3
##
## [[5]]
## [1] 4
##
## [[6]]
## [1] 5
##
## [[7]]
## [1] 6
- 일반 벡터를 리스트로 강제 변환: as.list()
x <- c(1,3,5,10)
x_as_list <- as.list(x)
str(x_as_list)
## List of 4
## $ : num 1
## $ : num 3
## $ : num 5
## $ : num 10
- 리스트 내의 원소 확인: 각괄호([])
simple_list[3]
## [[1]]
## [1] "cat"
- 리스트 내의 원소가 맨처음 입력했던 객체 타입을 그대로 유지: 이중 각괄호([[]])
simple_list[1]
## [[1]]
## [1] 1 2 3 4
str(simple_list[1])
## List of 1
## $ : int [1:4] 1 2 3 4
simple_list[[1]]
## [1] 1 2 3 4
str(simple_list[[1]])
## int [1:4] 1 2 3 4
- 리스트 내의 객체의 원소 확인: 이중 각괄호([[]]) 다음에 각괄호([])
simple_list[[1]][4]
## [1] 4
속성
- 객체 타입 확인: class()
class(simple_list)
## [1] "list"
- 행렬, 데이터프레임, 다차원 배열 등 높은 차수의 차원 확인: dim()
- 벡터의 각 원소에 이름 부여: names()
y <- c(first=1, second=2, third=3, fourth=4)
y
## first second third fourth
## 1 2 3 4
a1 <- c(1,2,3,4)
a2 <- c("1st", "2nd", "3rd", "4th")
names(a1) <- a2
a1
## 1st 2nd 3rd 4th
## 1 2 3 4
- 벡터의 각 원소의 이름 수정: setNames()
setNames(y, c("a", "b", "c", "d"))
## a b c d
## 1 2 3 4
- 이름이 부여되지 않으면 결측(NA)으로 처리
y <- setNames(y, c("a", "b", "c"))
names(y)
## [1] "a" "b" "c" NA
- 이름이 하나도 부여하지 않은 벡터는 NULL을 리턴
names(x)
## NULL
- 원소 이름 제거: unname(), NULL로 대체
unname(y)
## [1] 1 2 3 4
names(y) <- NULL
names(y)
## NULL
인수
- 범주형 자료에서 문자형 테이터를 저장하는 프레임워크
drug_response <- c("placebo", "treatment", "placebo", "treatment")
drug_response <- factor(drug_response)
drug_response
## [1] placebo treatment placebo treatment
## Levels: placebo treatment
- 수준(level)이라 부르는 특정한 값을 포함하는 벡터
- 각 수준에 사용되는 정수값 확인: as.integer()
as.integer(drug_response)
## [1] 1 2 1 2
- 새로운 수준 값 추가: factor() 함수의 levels 옵션
drug_response[4] <- "refused treatment"
## Warning in `[<-.factor`(`*tmp*`, 4, value = "refused treatment"): invalid
## factor level, NA generated
drug_response <- factor(drug_response, levels = c(levels(drug_response),"refused treatment"))
drug_response[4] <- "refused treatment"
drug_response
## [1] placebo treatment placebo refused treatment
## Levels: placebo treatment refused treatment
as.integer(drug_response)
## [1] 1 2 1 3
반응형
'R 기초' 카테고리의 다른 글
R의 자료구조(4) : 데이터프레임 (0) | 2018.02.02 |
---|---|
R의 자료구조(3) : 배열, 행렬 (0) | 2018.01.29 |
R의 자료구조(1) : 벡터 (0) | 2018.01.04 |
[R 기초] SAS 데이터 파일 불러오기 (0) | 2017.12.13 |
2-5. R프로그래밍 핵심-R연산자 (0) | 2017.12.06 |