• Home
  • About
    • Yerim Oh photo

      Yerim Oh

      Happy and worthwhile day by day :)

    • Learn More
    • Email
    • LinkedIn
    • Instagram
    • Github
    • Youtube
  • Posts
    • All Posts
    • All Tags
  • Projects

[02] R

11 Mar 2020

Reading time ~3 minutes

Table of Contents
  • 데이터타입_ 벡터 목차
  • 벡터vectors
    • 벡터의 성분
    • 새로운 벡터 생성
    • 인덱싱
    • append()함수
    • 결측치
    • 이름 부여
    • 수열 생성

데이터타입_ 벡터 목차

  • 벡터vectors
    • 벡터의 성분
    • 새로운 벡터 생성
    • 인덱싱
    • append()함수
    • 결측치
    • 이름 부여
    • 수열 생성

–

벡터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[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



RBasic Share Tweet +1