Table of Contents
데이터타입_ 벡터 목차
–
벡터vectors
- 여러 개의 값이 하나의 객체로 묶인 것
- R에서 기본이 되는 데이터 타입
- 모든 성분이 같은 타입이어야 함
벡터의 성분
- 실수(double)
- 정수(integer)
- 문자열(string)
- 논리값(logical)
새로운 벡터 생성
- c( )함수이용.
- > x 에서 최대한 타입을 맞춰주기 때문에 int를 double로 자동으로 바꿈
> x <- c(1, 2.5, 3.2) # double > y <- c(1200000, 1000000, 900000) # integer > z <- c("인천", "대전", "광주", "대구", "울산", "부산") # string > v <- c(TRUE, FALSE, FALSE, TRUE) # logical
- > x 에서 최대한 타입을 맞춰주기 때문에 int를 double로 자동으로 바꿈
인덱싱
- 벡터의 각 성분은 []를 이용해 인덱싱 가능
> x[3] # x의 세번째 성분 ##[1] 3.2
- 여러 성분을 동시에 인덱싱해서 벡터의 일부를 추출해 부분벡터 만들기 가능
> x[c(1, 3)] # x의 첫번째, 세번째 성분을 추출한 부분벡터 ##[1] 1.0 3.2
append()함수
- append(함수이름, 넣을 값, 원하는 위치)
- 기존 벡터에 새로운 값을 원하는 위치에 추가해 새로운벡터를 만들 수 있음.
> append(x, 99, after = 3) # x의 세번째 성분 다음에 99삽입
##[1] 1.0 2.5 3.2 99.0
> append(x, -99, after = 0) # x의 맨앞에 -99삽입
##[1] -99.0 1.0 2.5 3.2
결측치
-
- NA
- 결측치인 성분의 표시
-
- .is.na()
- 결측치 여부를 논리값으로 알려주는 함수.
> x <- c(1, 2, 3, NA, 5)
> is.na(x)
[1] FALSE FALSE FALSE TRUE FALSE
-> 기존 벡터 인덱스의 범위를 벗어나는 성분위치에 값을 할당해 발생한 빈자리는 결측치로 채우는 방식으로 처리.
[ex] 길이가 3인 벡터의 7번째 성분 값에 2를 할당하면,
4, 5, 6번째 성분의 값은 결측치(결측치는NA로표시)로 채워진길이가 7인벡터가 생성.
> a <- c(1, 2, 3)
> a[7] <- 2
> a
#[1] 1 2 3 NA NA NA 2
이름 부여
-
- names()
- 객체 내 성분의 이름을 알아내거나 이름을 부여할 때 사용하는 함수
> fruit <- c(5, 3, 2) > names(fruit) <- c("apple", "orange", "peach") > fruit ##apple orange peach ##5 3 2 > fruit[c("apple", "peach")] ##apple peach ## 5 2
-
- setNames()
- 객체에 포함된 성분 이름을 부여할 때 편리
> fruit <- setNames(c(5, 3, 2), c("apple", "orange", "peach"))
수열 생성
: 연산자, seq()함수, rep()함수 이용
- m:n m부터n까지1씩증가(감소)하는 수열 생성, ```
z <- 1:10 z ##[1]1 2 3 4 5 6 7 8 9 10
5:-5 ##[1] 5 4 3 2 1 0 -1 -2 -3 -4 -5 ```
- seq()
- 등차수열 만듦
- seq(from = 시작, to = 끝, by = 증가값)
-
- seq(from = 0, to = 1, length = 11)
- 0부터 1까지 11개의 값을 만들어내라
> x <- seq(from = 0, to = 1, by = 0.1)
> x
##[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
> y <- seq(from = 0, to = 1, length = 11)
> y
##[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0>
- rep()
- 같은 값을 반복해서 수열을 만들어줌.
-
- rep(a, b)
- a를 b번 반복해라
-
- *rep(a:b, c)
- a:b 를 c번 반복
-
- *rep(a:b, each = c)
- a:b 를 각각 c번 반복
> rep(7, 10)
##[1] 7 7 7 7 7 7 7 7 7 7
> rep(1:3, 2)
## 1:3을두번 반복
##[1] 1 2 3 1 2 3
> rep(1:3, each = 2)
##각성분을두번씩반복
[1] 1 1 2 2 3 3