/ R

R 기초강의(1) - R 개요

R 강좌는 여러 절로 구성되어 있습니다.


R 개요

R은 통계 계산을 위한 프로그래밍 언어이면서 동시에 데이터 분석 소프트웨어 입니다. AT&T의 Bell 연구소에서 만들어진 통계 프로그램 S에서 문법과 통계처리 부분을 참고해 1993년 뉴질랜드 오클랜드 대학교 통계학과 교수인 로스 이하카와 로버트 젠틀맨이 개발했고 현재는 R 코어팀이 개발을 진행중입니다.

R은 범용 분석 툴이기 때문에 다양한 형태의 데이터를 분석할 수 있습니다.

일반적으로 다음과 같은 일들을 할 수 있습니다.

  • 통계 분석 : 기초통계, 가설검정
  • 머신러닝 모델링 : SVM, Random Forest, Deep Learning
  • 텍스트 마이닝 : 단어의 빈도를 이용해 글의 성향 분석
  • 이미지와 사운드 분석 : 이미지와 사운드의 속성을 추출해 데이터로 변환

데이터 분석을 하기에 R이 가장 성능이 좋은 것은 아닙니다. 이미 SAS, SPSS 같은 기능이 더 많고 성능이 더 좋은 통계 패키지가 존재합니다. 또한 Excel 역시 어느 정도의 통계 분석기능을 가지고 있구요. 이런 상황에서 왜 R을 배워야 할까요?

R은 무료이면서 성능이 상당히 좋기 때문입니다. (설득력이 좀 …)

데이터 분석을 위한 프로그래밍 언어 측면에서 R 이외에도 Python을 많이 언급합니다. 프로그래밍 언어 측면에서는 R과 Python 중 어떤것을 선택해야 할까요?

R은 일반적으로 데이터를 분석한 후 그 결과를 어딘가에 보고하거나 그 의미를 시각화 시키기에 적합합니다. 그에 비해 Python은 데이터 분석 결과를 다른 Web Application 같은 곳에 접목시킬려는 의도가 강하다고 보시면 됩니다. 내가 해결해야 하는 문제에 대해 어느 방식이 더 적합한가를 고려하여 데이터 분석 언어를 선택하시면 됩니다.


R의 장점

R이 다른 데이터 분석 툴에 비해 가지는 장점은 다음과 같습니다.

  • Open Source : SAS, SPSS와 같은 전통적인 데이터 분석 시스템은 대부분 유료이지만 R은 무료로 사용할 수 있습니다.

  • Open Source 생태계 : 다양한 분석 package가 존재하며 최신 분석 기법을 빠르게 사용할 수 있습니다. 특히 R 사용자들이 패키지를 만들어 공유하는 site인 CRAN(The Comprehensive R Archive Network)을 통해 최신 분석 기법이 포함된 package들을 쉽게 이용할 수 있습니다.

  • 프로그래밍 방식의 데이터 분석 : 전문적인 데이터 분석이 가능합니다. 제한된 기능이 있는 GUI 분석툴보다 좀 더 심층적인 분석이 가능하고 분석의 전 과정이 코드로 표현 되기 때문에 재현성을 확보할 수 있습니다.


R과 RStudio 설치

R을 다운로드하여 설치하고 R 개발을 편하게 하기 위한 IDE인 RStudio를 다운로드하여 설치합니다.

R 설치 시 주의할 점

  • 설치 시 윈도우 사용자 계정이 한글인 경우 설치 및 실행에 오류가 발생할 수 있습니다. 계정이 한글인 경우 영문으로 새로운 계정을 생성해서 R을 설치해야 합니다.
  • CRAN에서 R 다운로드 및 설치
  • RStudio 다운로드 및 설치

RStudio 화면구성

RStudio의 화면은 총 4개로 구성되어 있으며 필요에 따라 각 창의 위치를 자유롭게 바꿀 수 있습니다.

각 창의 역할을 간단하게 살펴보면 다음과 같습니다.

  • Source 창 : 스크립트 파일을 생성해서 코드를 작성합니다.
  • Console 창 : 코드 실행결과가 표시됩니다.
  • 환경 창 : 코드 실행 시 생성된 변수의 값을 확인할 수 있습니다.
  • 파일 창 : 워킹 디렉토리 확인 및 설치된 패키지를 확인할 수 있는 탭이 있습니다.

R Project 생성 및 환경 설정

코드를 작성할 준비가 되었으면 이제 R Project를 생성합니다.

R Project 생성 시 주의할 점

  • Project 명과 경로명에 한글이 있는 경우 오류가 발생할 여지가 있습니다. Project 명과 경로명에 한글이 포함되지 않도록 Project를 생성합니다.

Project 생성 후 Global Options에서 soft-wrap 자동 줄바꿈 옵션 설정을 체크하는게 코드를 보기에 편합니다. (Tools -> Global Options -> Code -> Soft-wrap R source files 체크)

인코딩 설정은 Global Options과 Project Options에서 각각 설정할 수 있습니다.

Global Options의 인코딩 설정은 Tools -> Global Options -> Code -> Saving -> Default text encoding 부분에 UTF-8로 설정합니다.

Project Options에서 인코딩 설정은 Tools -> Project Options -> Code Editing -> Text Encoding을 UTF-8로 설정합니다.

프로젝트를 생성한 후 변수를 선언하고 간단한 사칙연산을 수행해보도록 하겠습니다. R에서 모든 변수는 객체(Object)형태로 저장되기 때문에 하나의 변수에 데이터와 함수, 그래프까지 저장이 가능합니다.

R 코드를 작성할 때 기본적으로 알아두어야 할 점은 다음과 같습니다.

  • R의 주석은 # 으로 표현합니다.
  • R Studio에서 여러줄 주석은 Ctrl + Shift + c 입니다.
  • ; 기호는 하나의 statement가 종료되었음을 의미합니다. 만약 같은 줄에 다른 statement가 없다면 생략할 수 있습니다.
  • R 명령어를 수행하는 기능은 Ctrl + Enter 입니다.
  • R은 Case-Sensitive하기 때문에 대소문자 처리에 주의해야 합니다.
  • 두단어를 포함해서 변수를 생성할 때는 두번째 단어의 시작을 대문자(CamelCase)로 합니다.

실습

Project 생성 후 변수를 선언하고 사칙연산을 하는 기본 코드를 작성하고 실행해 결과를 확인합니다.

# 변수선언 및 사칙연산

# scalar : R의 vector 자료구조의 한 유형으로 한 개의 값만 갖는 vector를 의미

myVar <- 100
result <- myVar + 200
result

# 1개의 데이터 출력(출력 후 개행)
print(result)

var1 = 3.141592
result = var1 * 2

# 여러개의 데이터 출력
# cat()은 출력후 개행이 일어나지 않음. "\n"으로 개행 출력
cat("계산된 결과값은 :", result)

# cat() 함수는 console이 아닌 파일에 출력을 할 수 있습니다.
cat("계산된 결과값은 :",
    result,"\n",
    file="c:/R_workspace/R_Lecture/data/cat_result.txt",
    append=TRUE)
    
# Environment에 있는 모든 객체 삭제.
# Console을 clear.
 
rm(list=ls())  # Environment 객체 삭제
cat("\014")    # console clear

End.


이 포스트의 내용은 아래의 책과 사이트를 참조했습니다. 조금 더 자세한 사항을 알고 싶으시면 책을 참조하거나 해당 사이트를 방문하세요!!