정보

    • 업무명     : R을 이용한 통계 분석 및 데이터 시각화 : 산술연산

    • 작성자     : 박진만

    • 작성일     : 2020-03-26

    • 설   명      :

    • 수정이력 :

     

     내용

    [개요]

    • R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지 통계 분석 환경입니다. 

    • 통계 분석 기능으로 통계 검정, 선형 회귀 분석, 시계열 데이터 분석, 클러스터링 등을 지원하고 있습니다.

    • 또한 최신 논문에서 발표된 같은 새로운 기술도 R로 구현되는 경우가 많습니다.

    • 특히 시각화 기능으로 히스토그램, 막대 그래프, 선 그래프, 산포도, 나무 모양 그림이나 히트맵 등 기본적인 그래프가 기본으로 지원하고 있습니다.

    • 또한 ggplot2 등의 패키지를 사용하여 더 높은 수준의 그림을 가시화할 수 있습니다.

     

     

    [특징]

    • 데이터를 이해하기 위해서 통계 분석 및 데이터 시각화가 요구되며 이 프로그램은 이러한 목적을 달성하기 위한 소프트웨어

       

    [기능]

    • 데이터형 소개

     

    [활용 자료]

    • 없음

     

    [자료 처리 방안 및 활용 분석 기법]

    • 없음

     

    [사용법]

    • 소스 코드 예시 참조

     

    [사용 OS]

    • Windows 10

     

    [사용 언어]

    • R v3.6.2

    • R Studio v1.2.5033

     

     소스 코드

    [산술 연산자]

    • 산술 연산자는 사칙 연산 등에 사용 연산자이다. 가감 이외에도 외에 제곱, 몫, 나머지 지수를 구하는 연산자도 준비되어있다.

    연산자 의미 입력 식 실행 결과
    + 더하기 3+4 7
    - 4-1 3
    * 곱하기 4*5 20
    / 나누기 9/2 4.5
    % / % 9 % / % 2 4
    %% 나머지 (mod) 9 %% 2 1
    ^ 거듭 제곱 2 ^ 4 16
    • 수식을 입력하고 Enter 키를 누르면 계산이 실행되고 결과가 화면에 나타난다.

    3 + 4
    ## [1] 7
    
    3 - 4
    ## [1] -1
    
    9 %/% 2
    ## [1] 4
    
    9 / 2
    ## [1] 2
    
    9 %% 2
    ## [1]4

     

    [대입 연산자]

    • 변수에 값을 대입 할 때 사용하는 연산자이다. (=과 같다)

    x <- 3        #x에 3을 대입
    
    y <- x        #y에 x를 대입 (x = 3이므로 y = 3)
    
    z <- x * y   #x와 y의 곱 z에 대입 (x = 3, Y-3이므로이, z = 9)
    
    x <- 10      #x에 10을 대입 (기존에 x=3 이라는 정보가 사라짐)

     

    [논리 연산자]

    • 논리식을 판단 할 때 사용하는 연산자이다. 

    • AND는 &나 &&., OR은 |나 ||를 사용한다.

    • &와 |는 연산 결과를 벡터로 돌려 준다. 즉 벡터 연산시 의사 결정 등과 함께 사용되는 경우가 많다.

    • 또한 &&과 ||는 연산 결과를 TRUE또는 FALSE리턴한다, 즉 if문장의 판단 조건 등과 함께 사용되는 경우가 많다.

     

    [& , | 의 예시]

    x <- c(T, T, F, F, T, T, F, F)
    y <- c(T, F, T, F, T, F, T, F)
    z <- c(1, 2, 3, 4, 5, 6, 7, 8)
    
    x & y
    ## [1]  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
    
    x | y
    ## [1]  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE FALSE
    
    # x = T이고 y = T일 때 z 값을 추출
    z[x & y]      # z[x == T & y == T] 
    ## [1] 1 5
    
    # x = T 또는 y = T일때 z값을 추출
    z[x | y]      # z[x == T | y == T]
    ## [1] 1 2 3 5 6 7
    
    # x = T이고 y는 T 가 아닐 때의 z 값을 추출
    z[x & !y]     # z[x == T & y != T]
    ## [1] 2 6

     

    [&& , || 의 예시]

    a <- T
    b <- T
    c <- F
    
    if (a) {       # a가 TRUE라면
      "a == TRUE"
    }
    ## [1] "a == TRUE"
    
    if (a && b) { # a가 TRUE이고 b가 TRUE라면
      "a == TRUE and b == TRUE"
    }
    ## [1] "a == TRUE and b == TRUE"
    
    if (a && c) {   # a가 TRUE이고 c가 TRUE라면
      "a == TRUE and b == TRUE"  
    }
    # (c가 FALSE이기 때문에) 아무것도 출력되지 않는다
    
    if (!c) {
      "c != TRUE"
    }
    ## [1] "c != TRUE"

     

    [any와 all]

    • R은 논리 연산자와 비슷한 기능을 하는 함수가 준비되어있다. any와 all이다.

    any 입력 된 인수 중 하나 이상 TRUE이 존재하면 TRUE를 반환한다.
    all 입력 된 인수 중 모두가 TRUE이면 TRUE을 돌려 준다.
    x <- c(TRUE, TRUE, TRUE)
    y <- c(TRUE, TRUE, FALSE)
    z <- c(FALSE, FALSE, FALSE)
    
    any(x)
    ## [1] TRUE
    
    any(y)
    ## [1] TRUE
    
    any(z)
    ## [1] FALSE
    
    all(x)
    ## [1] TRUE
    
    all(y)
    ## [1] FALSE
    
    all(z)
    ## [1] FALSE

     

    • 이 함수를 이용하여 다음과 같이 임계치 결정 등에 이용하면 편리하다.

    w <- c(1, 2, 3, 4, 5)
    
    any(w > 0)   # 0보다 큰 요소가 있는지 확인 (답 : 모두 0 위이므로 TRUE)
    ## [1] TRUE
    
    any(w > 2)  # 2보다 큰 요소가 있는지 확인 (답 : 3,4,5이 있기 때문에 TRUE)
    ## [1] TRUE
    
    all(w > 0)  # 모든 요소가 0 보다 큰지 확인 (답 : TRUE)
    ## [1] TRUE
    
    all(w > 2)   # 모든 요소가 2보다 큰지 확인 (답 : 1 이 벡터에 포함 되어있으므로 FALSE)
    ## [1] FALSE

     

    [다음글]

     

    [R] R을 이용한 통계 분석 및 데이터 시각화 : 수학 기본 함수

    정보 업무명 : R을 이용한 통계 분석 및 데이터 시각화 : 수학 기본 함수 작성자 : 박진만 작성일 : 2020-03-26 설 명 : 수정이력 : 내용 [개요] R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지..

    shlee1990.tistory.com

     

    [이전글]

     

    [R] R을 이용한 통계 분석 및 데이터 시각화 : 결측치

    정보 업무명 : R을 이용한 통계 분석 및 데이터 시각화 : 결측치 작성자 : 박진만 작성일 : 2020-03-26 설 명 : 수정이력 : 내용 [개요] R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지 통계 분..

    shlee1990.tistory.com

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

    [기상학/프로그래밍 언어]

    • sangho.lee.1990@gmail.com

    [해양학/천문학/빅데이터]

    • saimang0804@gmail.com

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기