vector(벡터)
- 같은 데이터 타입을 갖는 1차원 배열구조(파이썬의 Series)
- c( ) : combine value
- 벡터는 중첩할 수 없다.
- 단일 데이터 타입만 가능하다.
- 데이터 변환 규칙 : integer < double(numeric) < character
1) 벡터는 같은 데이터 타입을 갖는 1차원 배열구조이다.
# 벡터인 경우 x <- c(10,20,30,40,50) x class(x) mode(x) typeof(x) str(x) |
|
# 벡터가 아닌 경우 y <- c(1L,2,'삼') y mode(y) class(y) typeof(y) str(y) |
|
2) 벡터의 열(컬럼)
# 벡터 만들기 x <- c(1,2,3,c(4,5)) x |
|
# 벡터 안에서 벡터 계산 x <- c(1,2,3,sum(c(4,5))) x |
|
# 벡터의 열 만들기 x <- c(1,2,3,sum=c(4,5)) x
x <- c("국어"=90,"수학"=80,"영어"=100) x
y <- c("과목"=c(90,80,100)) y |
|
# 벡터값 계산 x + 10 |
|
# 벡터안의 컬럼 이름확인 names(x) |
|
# 컬럼이름 수정 names(y) <- c("국어","수학","영어") y
names(y) <- NA |
|
# 벡터의 열 제거 names(y) <- NULL y |
|
# 벡터의 열이름이 없는 경우 NULL이 출력된다. x <- c(1,2,3,c(4,5)) x names(x) |
|
# 열이름이 없는 곳은 NA로 표시된다. names(x) <- c('a','b','c') x |
3) 벡터의 인덱싱과 슬라이싱
# 벡터의 길이 length(x) NROW(x) |
|
# 벡터의 인덱싱 x <- c(10,20,30,40,50) x x[0] x[1] |
|
# 요소는 제외한 나머지 인덱싱 x[-1] x[-2] |
|
# 요소의 값만 뽑아내기 x[c(1,3)] x[c(-1,-3)] |
|
# 컬럼 이름으로 인덱싱 가능 names(x) <- c('a','b','c','d','e') x x['a'] x[c('a','c')] |
|
# 벡터의 슬라이싱 x[1:5] x[-1:-3] |
|
# 벡터의 값을 수정 / 인덱싱이나 슬라이싱을 통해 수정 x <- c(10,20,30,40,50) x x[1] <- 1 x x[1] <- NA x x[1:3] <- c(1,2,3) x |
4) 벡터 비교
# 벡터 비교(인덱스끼리 비교) x <- c(1,2,3) y <- c(1,2,3) z <- c(1,2,4) x == y x == z
# 벡터의 길이가 일치해야지만 비교한다. x1 <- c(1:4) x == x1 |
|
# 벡터의 값이 동일한지 비교 identical(x,y) identical(x,z) |
|
# 두 벡터가 같은 집합인지 비교 setequal(x,y) |
|
# 3가지 비교법 x1 <- c(1:5) #정수형 str(x1) str(x2)
x1 == x2 # 각 인덱스의 값을 비교 setequal(x1,x2) # 집합 값을 비교 identical(x1,x2) # 벡터의 길이, 각 인덱스의 값, 타입 비교 |
|
형변환을 하면 TRUE가 된다. # as.integer() : 정수형 형변환 함수
#as.numeric() : 실수형 형변환 함수 identical(as.numeric(x1),x2) |
5) 기타 벡터 다루기
# 벡터의 값을 추가 x[6] <- 60 x x[NROW(x)+1] <- 70 x |
|
# append를 이용한 벡터의 값을 추가 x <- append(x,80,after=7) x |
|
# 연속되는 값을 표현하는 방법 x <- 1:100 x y <- c(1:100) y |
|
# sequence : 자동 일련번호 생성 x <- seq(1,100,2) x |
|
# 길이만큼 일련번호 생성 x <- c(10,20,30,40,50) |
|
# 역순 10:1 seq(10,1,-1) |
|
# 벡터 연산 x <- c(10,20,30,40,50) |
|
# 벡터의 집합 연산자 x <- c(1,2,3,4) y <- c(1,4,6) # 합집합 union(x,y) intersect(x,y) # 차집합 setdiff(x,y) |
|
#벡터 변수에 값이 있는지 판단 1 %in% x 5 %in% x |
|
# 벡터 변수에 값이 어느 위치에 있는지 판단 x <- c('b',NA,'a','d','a',NA) x 'a' %in% x |
|
# 조건에 해당하는 요소 번호 찾기 which('a'==x) |
|
#벡터에 NA가 있는 인덱스를 찾아야할때 is.na(x) x[is.na(x)] which(NA==x) which(is.na(x)) |
|
# NA값 수정 x[which(is.na(x))] <- 'c' x |
6) 벡터의 정렬
# 정렬하기 x1 <- c(9,7,3,6,4,2,1) x1 sort(x1,decreasing = FALSE) # 오름차순 sort(x1,decreasing = TRUE) # 내림차순 |
|
# NA값 정렬 x2 <- c(9,7,3,6,NA,4,2,1) sort(x1,decreasing = FALSE) |
|
# 인덱스 번호도 함께 출력 sort(x2,decreasing = FALSE,index.return = TRUE) |
'컴퓨터 > R' 카테고리의 다른 글
R - 자료형 ④ array(배열) (0) | 2020.04.09 |
---|---|
R - 자료형 ③ matrix(행렬) (0) | 2020.04.09 |
R - 자료형 ② list(리스트) (0) | 2020.04.08 |
R - 변수 / 숫자·문자형 / 연산자 / NA와 NULL (0) | 2020.04.08 |
R - R 설치 / R Studio 설치 (0) | 2020.04.08 |