ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [3 과목] R 프로그래밍 기초 ①
    자격증/ADsP 2021. 11. 2. 02:30
    728x90

     

     

     

     

    빅데이터 분석에 자주 사용되는 프로그래밍 언어에는 R, Python이 있다.

    Python은 개발자의 언어로 머신러닝, 딥러닝을 위한 무수한 패키지들이 쏟아지고 있다. 접근성면에서 R의 언어가 직관적이기 때문에 쉽다고 느껴질 수 있으나, Python도 다른 프로그래밍 언어에 비해 코드가 어렵지 않아 프로그래밍 언어 입문용으로 배우기 쉽다. 개인적으로 어떤 툴이 더 낫다고 보긴 어렵다고 생각한다. 그냥 R이나 파이썬이나 데이터 분석에서 할 수 있는 것은 비슷하다. 어떤 게 내게 더 잘 맞는지는 둘 다 배워봐야할 것이다.

     

     

    ADsP에서는 R프로그래밍 기초에 대해서 학습한다. R은 통계학자들에 의해 만들어진 통계, 데이터마이닝, 시각화를 위한 다양한 패키지를 제공한다. 오픈소스 프로그램으로 많은 사람들이 사용하고 있으며, 프로그래밍 언어 순위 사이트에서 상위권을 차지하고 있다.

     

     

    (첨부 : 프로그래밍 언어 순위 제공 사이트)

     

    https://www.tiobe.com/tiobe-index/

     

    index | TIOBE - The Software Quality Company

    TIOBE Index for October 2021 October Headline: Python programming language number 1! For the first time in more than 20 years we have a new leader of the pack: the Python programming language. The long-standing hegemony of Java and C is over. Python, which

    www.tiobe.com

    https://pypl.github.io/PYPL.html

     

    PYPL PopularitY of Programming Language index

    PYPL popularity of programming language

    pypl.github.io

     


     

     

     

    3과목 R 프로그래밍 기초 ①

     

     

     

    R 설치는 간단하다.

     

    https://cran.r-project.org/bin/windows/base/

     

    Download R-4.1.1 for Windows. The R-project for statistical computing.

    If you want to double-check that the package you have downloaded matches the package distributed by CRAN, you can compare the md5sum of the .exe to the fingerprint on the master server. You will need a version of md5sum for windows: both graphical and comm

    cran.r-project.org

     

     

    이곳으로 들어가서 다운로드 파일을 받고, 자신의 운영체제에 맞는 버전으로 설치하면 된다.

    설치 내용은 생략한다.

     

     

    R 언어를 설치하면 기본적으로 R Gui 툴이 제공된다. R 언어를 활용할 수 있는 GUI툴은 다양한데, 보통 R Studio를 많이 사용한다. 여기서는 간단한 실습과 기초적인 명령어(함수)를 학습하기 위해서 R Gui 툴을 사용하였다. R Studio는 다음 링크에서 설치할 수 있다.

     

     

    https://www.rstudio.com/products/rstudio/download/

     

    Download the RStudio IDE

    RStudio is a set of integrated tools designed to help you be more productive with R. It includes a console, syntax-highlighting editor that supports direct code execution, and a variety of robust tools for plotting, viewing history, debugging and managing

    www.rstudio.com

     

     

    R Gui 콘솔에 코드를 입력하여 실행하면 한줄한줄 실행할 수 있다.

    파일 > 새파일 > R 스크립트  창을 켜서 코드를 스크립트로 작성해두고 한번에 실행할 수도 있다.

     

     

    R GUI 콘솔화면

     

     

     

     

    1. 패키지 설치 install.packages() 함수

     

     

    R을 이용하다보면 많은 라이브러리를 설치하게 되는데 그 때 사용되는 함수가 바로 install.packages("패키지명")이다.

     

    여기서 함수란, x를 넣었을 때 x에 대응되는 y를 뱉어주는 기능이라고 할 수 있다. install.package함수는 패키지명을 넣었을 때, 해당 패키지를 다운로드 해주는 기능을 제공한다.

     

    이때, 패키지는 R이 설치되어 있는 경로의 라이브러리 폴더에 저장된다.

    ('C:/Program Files/R/R-4.0.3/library')

     

     

    install.packages("ggplot2")

     

     

    위 코드를 입력하면 ggplot2 패키지가 설치된다. ggplot은 R에서 자주 사용되는 시각화 툴이다.

    설치된 패키지를 확인하고 싶을 땐, 다음과 같은 함수를 사용한다.

     

     

     

     

     

    2. 패키지 확인 library(), help() 함수

     

    library()

     

    library() 함수 사용시 R GUI 화면

     

     

    library() 함수를 사용하면 이제까지 다운로드된 패키지의 목록과 간략한 설명을 볼 수 있다.

    ggplot2가 목록에 있는 것을 확인 할 수 있다.

     

    help(package=ggplot2)
    help(package="ggplot2")

     

     

    help() 함수를 사용하면 다음과 같이 웹 화면에서 ggplot2 패키지에 대한 문서를 자세히 볼 수 있다.

    ggplot2의 사용법에 대해서 자세히 알고 싶다면 help(package="패키지명") 함수를 사용하도록 한다.

     

    help() 함수 사용시 웹화면

     

     

     

    3. R의 데이터 타입 확인하기 typeof(), mode(), storage.mode()

     

    typeof() mode() storage.mode()
    logical logical logical
    integer numeric integer
    double numeric integer
    complex complex complex
    character character character

     

     

    R에는 문자형, 숫자형, 논리값 데이터 타입이 있다.

    데이터 타입은 프로그래밍 언어별로 사용하는 어휘에 조금씩 차이가 있다.

     

     

      1) '바나나', 'APPLE' 등 문자로 이루어진 문자형 데이터 값을 R에서는 character 라고 하고 문자형 데이터를 입력 할때에는 작은 따옴표('')나 큰 따옴표("")사이에 적는다.
      2) 숫자형 데이터 타입은 integer, numeric, double, complex 로 표현된다.
      3) True(T), False(F) 논리값 데이터 타입은 logical 로 표현된다.

     

     

    다음은 문자로 이루어진 데이터인 'star'와 숫자형 데이터인 pi, 논리형 데이터 True(T)를 이용하여 데이터타입을 확인하는 코드이다. typeof(), mode(), storage.mode() 함수 안에 각각 'star', pi, T를 넣어주면 그에 상응하는 데이터 타입을 알려준다.

     

     

    # 'star'의 데이터 타입을 알려줘
    typeof('star')
    mode('star')
    storage.mode('star')
    
    # pi의 데이터 타입을 알려줘
    typeof(pi)
    mode(pi)
    storage.mode(pi)
    
    # T의 데이터 타입을 알려줘
    typeof(T)
    mode(True)
    storage(True)

     

     

    함수(typeof(), mode(), storage.mode())의 종류에 따라 내뱉는 결과에는 차이가 있지만 각각이 의미하는 것이 문자형인지, 숫자형인지, 논리형인지 체크할 수 있다. 

     

     

     

     

    4. 변수 생성

     

    다음은 변수에 대한 설명이다. 변수는 데이터를 담는 그릇이다. 위에서 보았던 문자형 데이터, 숫자형 데이터, 논리형 데이터를 변수에 담아서 표현할 수 있다. Java나 C언어 같은 경우에는 변수를 정의한 후에 데이터를 담지만, Python이나 R에서는 변수에 데이터를 담으면 자동으로 변수가 생성된다.

     

    # a라는 변수에 '바나나'를 담아라.
    a = '바나나'
    
    # a 변수를 알려줘.
    a

     

    코드 실행 결과

     

     

    위 코드를 실행하면 a를 알려달라고 했을 때, '바나나'라는 값이 프린트 된다. 여기서 더 나아가 typeof('바나나')를 실행하게 되면 다음과 같은 결과를 얻게 된다.

     

    # a라는 변수에 '바나나'를 담아라.
    a = '바나나'
    
    # a 변수를 알려줘.
    a
    
    # a의 데이터 타입을 알려줘.
    typeof(a)

     

    코드 실행 결과

     

     

    a의 데이터 타입이 character인 것을 알게 되었다.

    이는 변수 a에 담긴 '바나나' 데이터의 타입을 반환한 것이다.

    이때, 변수 a에 '바나나'를 할당한다고 하기도 하고, 변수 a에 '바나나'를 바인딩한다고 하기도 한다.

     

    변수에 값을 할당할 때 사용하는 '='과 같은 연산자를 대입 연산자라고 한다.

     

     

     

     

    5. 대입연산자

     

    R에서 변수에 값을 할당하는 대입 연산자는 <-, <<-, =, ->, ->> 가 있다. 중괄호로 표시되는 연산자의 경우 대입하는 방향을 나타내기 때문에 화살표로 생각하면 쉽다.

     

    a <- '바나나'
    b <<- '바나나'
    c = '바나나'
    '바나나' -> d
    '바나나' ->> e

     

    코드 실행 결과

     

    하지만 주로 변수는 왼쪽에 입력하고 변수에 할당할 값은 오른쪽에 입력하는 것을 기억하자.

     

     

     

     

    6. 벡터 생성 c(), seq(), sequence(), rep() 함수

     

     

    벡터란 (예: ['딸기', '바나나','사과','배'])  데이터 값의 집합을 의미한다. 벡터는 동일한 데이터타입으로만 이루어질 수 있다. 문자형과 숫자형이 혼합될 수 없다. 다음은 c()함수를 이용한 벡터 생성 코드이다.

     

    f = c('딸기','바나나','사과','배')
    g = c(1, 2, 3, 4)
    h = c(1, '딸기', 3, '사과')

     

    코드 실행 결과

     

     

    벡터는 원소 중에 단 하나라도 문자가 있으면 모든 원소가 문자형이 된다. 이 외에도 벡터를 생성하는 함수에는 seq()와 sequence(), rep()이 있다. 사용 방법은 다음을 참고한다. 다음 코드에서 1:3은 1~3까지의 정수를 의미한다.

     

    # 1에서 10까지 2씩 증가하는 벡터를 생성해라
    i = seq(1,10,2)
    # 1에서 10까지 1씩 증가하는 벡터를 생성해라.
    j = seq(1,10,1)
    
    
    # 1부터 6까지의 정수 벡터를 생성해라.
    k = sequence(6)
    # 1부터 10까지 정수 벡터를 생성해라.
    l = sequence(10)
    
    
    # 포도를 3번 반복하는 벡터를 생성해라.
    m = rep('포도', times=3)
    # 1:2를 각각 3번 반복하는 벡터를 생성해라.
    n = rep(1:2, each=3)

     

    코드 실행 결과

     

     

     

    7. 객체 출력 print(), cat() 함수

     

     

    위에서는 a 변수를 확인하기 위해 a 라는 알파벳 하나만 사용했지만, print()함수를 이용해 변수나 벡터를 출력할 수도 있다. print()함수는 한번에 한 객체만 출력해주지만, cat()함수는 여러 객체를 묶어서 연결된 결과로 출력해준다.

     

    # a 객체를 출력해라.
    print(a)
    
    # a, b, c, d, e를 묶어서 출력해라.
    cat(a, b, c, d, e)

     

    코드 실행 결과

     

    print(a, b, c, d, e)는 불가능한 명령어이기 때문에 경고메시지를 반환한다. 

    cat 명령어는 각 변수에  저장된 단어들을 띄어쓰기로 연결하여 출력한 것을 볼 수 있다.

     

     

     

     

    8. 변수 목록 확인, 변수 삭제 ls(), rm() 함수

     

     

    ls() 함수를 실행하면 앞서 생성한 모든 변수 목록을 보여준다.

    ls.str()은 ls()함수에 str()함수를 적용한 함수로 모든 목록 변수에 일치하는 데이터의 구조를 보여준다.

     

    # 모든 변수 목록을 보여줘.
    ls()
    
    # 모든 변수 목록의 데이터 구조를 함께 보여줘.
    ls.str()

     

    코드 실행 결과

     

     

    rm()함수를 실행하면 생성했던 변수를 삭제할 수 있다. 다음 코드를 실행해보자.

     

    # a 변수를 삭제해라.
    rm(a)
    
    # 모든 변수를 삭제해라.
    rm(list=ls())
    
    # 변수 목록을 확인해라.
    ls()

     

    코드 실행 결과

     

     

     

    9. 사용자 정의 함수 function()

     

     

    앞서 함수란, x를 넣어서 그에 대응하는 y를 반환하는 것이라고 했다. 사용자 정의 함수는 내가 필요한 함수를 직접 만들어 사용하는 것을 의미한다.

     

    # a와 b의 덧셈을 수행해주는 사용자 정의함수
    plus <- function(a,b){
        return(a + b)
    }
    
    # 1과 3을 플러스 함수에 넣어라.
    plus(1,3)

     

    코드 실행 결과

     

    사용자 정의함수를 만들면 필요한 함수를 직접 만들 수 있어 복잡한 연산, 같은 연산을 반복해서 사용해야할 때, 유용하게 활용할 수 있다. 간단히 덧셈을 수행해주는 사용자 정의함수를 만들어 보았다. 그런데 이 코드는 다음과 같이 함수 안에 변수를 지정하는 방식으로 작성할 수도 있다. 

     

     

    위 코드와 달리 아래 코드에서는 함수 안에서 a+b 의 값을 변수 c에 할당하고 c값을 반환한다. 이때, 대입연산자 '<-', '='를 사용해서 변수에 할당하는 경우에 생성된 변수를 지역변수라고 하고, '<<-' 를 사용해 변수에 할당하는 경우에 생성된 변수는 전역 변수라고 한다.

     

     

    지역변수는 함수가 종료되면 삭제되지만, 전역변수는 함수가 종료되어도 삭제되지 않는다.

    '<<-'를 사용하는 것은 그다지 권장되지 않는다.

     

    plus2 <- function(a,b){
    	# 지역변수 c
    	c <- a + b
        return(c)
    }
    plus3 <- function(a,b){
    	# 전역변수 c
    	c <<- a + b
        return(c)
    }

     

     

     

     

    10. 정리

     

     

    용도 사용법
    패키지 설치 install.packages()
    패키지 확인  library(), help()
    데이터 타입 확인  typeof(), mode(), storage.mode()
    대입연산자 <-, <<-, =, ->, ->>
    벡터 생성  c(), seq(), sequence(), rep()
    객체 출력  print(), cat()
    변수 목록 확인, 변수 삭제 ls(), rm()
    사용자 정의 함수 function()



     


     

     

    이전글 : 2021.10.31 - [자격증/ADsP] - [3 과목] 데이터 분석 기법의 이해

     

    [3 과목] 데이터 분석 기법의 이해

    3과목 데이터 분석 기법의 이해 문제 1. 다음은 무엇에 대한 설명인가? - 데이터의 특징과 구조를 알아내기 위한 기법들을 통칭 - 특이한 점이나 의미있는 사실을 도출하고 분석의 최종 목적을 달

    db1g.tistory.com

     

     

     

    728x90

    댓글

Designed by Tistory.