시리즈:쉽게 R 수 있는 R

Senior9324 (토론 | 기여)님의 2015년 12월 4일 (금) 00:24 판 (Senior9324 사용자가 쉽게 R 수 있는 R 문서를 시리즈:쉽게 R 수 있는 R 문서로 옮겼습니다)

문서의 내용이 너무 쉬워서 머리속에 쏙쏙 드R어옵니다.

이 문서에는 독자적으로 연구한 내용이 들어갑니다. 다른 사람의 의견을 존중하면서 무례하지 않도록 작성해 주시고, 의견 충돌 시 토론 문서에서 토론해 주세요.

R이란?

R (프로그래밍 언어) 항목을 참고. 요약하자면 R은 통계 분석 및 관련 프로그래밍에 최적화된 프로그래밍 언어, 또는 R을 이용하여 통계 및 기타 작업을 하는 소프트웨어를 의미한다.

R을 이용해야 되는 이유

자유도가 높다. 다른 프로그램들이 일반적인 RPG 게임 정도의 자유도를 보여준다면 R은 스카이림과 맞먹는 자유도를 보여준다. 더불어 기능을 확장하여 쓸 수 있는 패키지확장팩가 무지하게 많기 때문에 다양한 작업이 가능하다. 또한 무료이기 때문에 기업에서도 많이 쓴다.

여담이지만 R을 충실히 해둔다면 유사한 형태의 객체지향형 프로그래밍 언어를 익힐 때 정말 유리하다. for문까지 익히고 가면 쉬운 프로그래밍 항목을 어느 정도 이해할 수 있다!

R을 이용하면 안 되는 이유

도망쳐! 학부생 수준에서는 보통 R을 쓸 필요가 없다. 일반 상용 소프트웨어를 이용하는 것이 훤씬 편리하고 쉬우며 결과도 잘 나올 가능성이 높다. 세상에는 EXCEL, e-view, SPSS, SAS, STATA같은 좋은 프로그램들이 많으며 R을 제대로 익히는 것보다 앞의 프로그램들을 전부 익히는 것이 빠를지도 모른다! 앞의 프로그램들이 유료라서 부담이 된다면 gretl이란 프로그램을 이용해도 된다.[1] 통계 분석에 R을 이용하기 위해선 R의 프로그래밍 언어를 익혀야 되기 때문에 R의 사용법을 익히는 것은 다른 소프트웨어를 배우는 것에 비해 훨씬 더 어렵다. 시간을 많이 투자해도 생각한 만큼 결과가 잘 나오지 않을지도 모른다.

설치 및 환경 설정

R Project 공식 웹사이트에 접속하여 다운 받으면 된다. 다운로드 페이지에 들어가면 수많은 링크가 뜨는데 당황하지 말고 가까운 지역을 찾아 다운하면 된다. 사실 지구 반대편에 위치한 곳을 이용해도 속도는 큰 차이가 없다.

사용에 도움이 되는 프로그램을 같이 설치해도 좋다. R Studio나 Tinn-R, RKWard 등이 있다. 이 중 가장 대중적으로 많이 쓰이는 프로그램은 R Studio.

R의 확장팩이라고도 할 수 있는 패키지의 설치 방법은 후술.

R을 써보자

본 문서는 R의 기본적인 문법 구조를 이해하고 데이터를 입력하고 출력하고 간단한 산수를 하는 것을 목표로 하고 있다. 엑셀을 비롯한 다른 통계 프로그램을 이용하면 10분이면 끝날 일을 엄청난 공을 들여 하게 될 것이다.(...)

R의 문법 구조

R의 문법 구조

R의 모든 것은 객체(object)다. 함수, 연산자, 변수 모두. 객체의 종류에 대해서는 R의 데이터 기본형 항목을 참고하면 좋다.

화살표와 등호를 이용하여 객체에 값을 부여하여 객체를 생성할 수 있다. 아래는 3의 값을 갖는 libre라는 객체를 생성하는 R 코드다.

libre<-3      # libre=3 을 대신 입력해도 된다.
libre       #이제 libre를 호출하면 3이라는 값이 호출된다.

R의 데이터 기본형

R은 데이터를 처리할 때 데이터를 기본형에 따라 서로 다르게 분류하여 처리한다. 데이터 기본형에 대한 이해 없이 코드를 입력하면 오류가 날 가능성이 매우 높다. R에서 자주 쓰이는 데이터 기본형은 다음과 같다.

  1. numeric(수치형) : 정수 및 실수. 우리가 흔히 생각하는 실수의 개념과 거의 일치한다. 실수로 구성된 벡터도 numeric에 포함된다.
  2. logical(논리형) : TRUE(참)과 FALSE(거짓)이 여기 포함된다. 첫 글자만 딴 T,F와 1,0도 여기에 포함될 수 있다.
  3. complex(복소수형) : numeric과 마찬가지로 복소수로 된 벡터도 여기에 포함된다.
  4. character(문자형) : numeric, logical, complex가 아닌 나머지가 여기 다 포함된다고 생각하면 된다. 큰 따옴표 안에 넣어야 R이 character임을 인식한다.
  5. list(리스트) : 리스트. 해당 기본형에 대해서는 후술.
  6. function(함수) : 우리가 생각하는 그 함수가 맞다.

mode()함수를 통해 기본형을 확인할 수 있으며 as.~() 함수를 이용해 데이터의 형태를 변환하는 것도 가능하다. as.XXXX(libre)에서 XXXX자리에 원하는 데이터 기본형을 입력하면 입력한 기본형의 형태로 변환된다. 단 항상 변환되는 것은 아니다.


mode(libre)    #위에서 생성한 libre의 기본형을 알 수 있다. libre의 기본형은 수치형이다.
as.character(libre)    #libre를 문자형으로 변환. 
libre    #결과를 확인해보면 libre가 문자형인 "3"의 값을 갖는 것을 확인할 수 있다.
is.character(libre) 
#이 함수를 이용하여 libre가 문자형인지 아닌지 확인할 수 있다. character 자리에 다른 데이터형을 넣어서 확인해볼 수 있다.


데이터가 저장될 땐 위의 데이터 기본형과는 미묘하게 다르게 분류된다는 점은 유의할 것.

오류가 나는 이유

다른 프로그래밍 언어와 마찬가지로 R도 수많은 이유로 인해 오류가 나게 된다. 아래는 오류가 나게 만드는, 자주 할 법한 실수를 모아둔 것.

  1. 괄호를 제대로 쓰지 않아서.
  2. 대소문자 구분을 하지 않아서.
  3. 따옴표를 쓰지 않았거나 위치가 잘못 되어있어서.
  4. 잘못된 종류의 괄호 이용.
  5. 한국어보단 영어가 여러모로 에러가 날 가능성이 적다. '_' 대신 '.'를 자주 쓰는 것도 좋다.

R을 이용하다 막힐 때

  • R의 기본 도움말 이용

help()함수나 함수 앞에 ?를 붙인 후 엔터를 누르면 함수에 대한 설명이 나온다. 연산기호에 대해 알고 싶다면 “”안에 넣어줘야 한다. 자세한 것은 아래의 예제를 참고할 것. 단, 설명이 다 영어라는 점과 어려운 함수일 수록 설명이 대충 써져 있을 확률이 높다는 것은 유의해야 한다.

help(library)
?library
?"%*%"
  • 검색

R은 책보다 구글 검색을 통해 더 쉽게 더 나은 해결책을 찾을 수 있다. 단 영어로 검색해야 원하는 답변을 찾을 가능성이 높다.

귀차니스트들을 위한 꿀팁

  • R에는 Built-in Constant라는 것이 존재한다.
 LETTERS
 letters
 month.abb
 month.name
 pi

다음과 같은데 글자 계속 반복해서 쓰기 귀찮을 때, 월을 입력할 때, 파이값을 가져다 쓸 때 편리하다.

  • 미리 저장된 데이터도 있다. 'data()'함수로 전부 확인 가능. R 연습을 위해 따로 데이터를 마련할 필요 없이 내장된 데이터를 가져다쓰면 된다.
  • 바깥에 괄호 표시를 해두면 이름을 지정하는 동시에 콘솔창에 출력도 가능하다.
 (Abs<-Letters[1:3])
  • 엔터 치기 귀찮으면 세미콜론(;)으로 구분해도 된다.
 3+4 ; (libren<-"yellow")
  • attach() 함수를 이용하면 굳이 dataframe$col.1 이런 식으로 표현할 필요 없이 col.1만 써도 소환이 가능하다. 다 쓰고 detach()를 해주는 것이 좋다.
 attach(iris)
 Species[3]
 detach(iris)
  • scientific notation을 해제하고 싶다면
 options(scipen=999)

을 이용하면 된다. 원상복구는 options(scipen=0)을 입력하거나 R을 껐다 켜도 된다.

각주

  1. 단 간단한 회귀분석만 지원하며 데이터 처리의 정확도가 앞의 프로그램들보단 떨어진다.