프로그래밍/R 프로그래밍

02. R 프로그래밍 맛보기

산을좋아한라쯔 2015. 2. 15. 00:40
반응형

R은 스크립트형 언어다.

이 말은 C나 Java처럼, 작성 완료된 프로그램 전체에 대해서 컴파일되고 난 후 실행되는 것이 아니라, 라인단위로 실행이 가능한 언어라는 것이다. 따라서, Console창에 라인단위로 명령을 치면 바로바로 실행 된다.

 

해서, Console창에다 직접 명령을 치면서 프로그램을 짜도 되겠지만, 스크립트 창에 텍스트 문서를 만들 듯이 코딩하면서 필요한 부분을 실행시키는 것이, 수정하기에도 재활용하기에도 편리하다.

 

스크립트 윈도우를 사용하기 위해서 다음과 같이 하자.

  • 메뉴에서 Fiel/New File/R Script 선택
  • 왼쪽 위에 Script 윈도우가 생길 것이다. 여기에 명령어를 치고 키보드의 'Ctrl-Enter'를 치면, 오른쪽 Console창에 실행결과가 보일 것이다.

    Script Window에서 작성한 명령어 실행 방법

    • 방법1: 타이핑한 명령어들을 마우스로 선택하고 Ctrl-Enter

    • 방법2: 타이핑한 명령어들을 마우스로 선택하고 Ctrl-R

    • 방법3: 타이핑한 명령어들을 마우스로 선택하고 'Run' 아이콘 클릭

       

    R 간단 맛보기

    R 프로그래밍은, 데이터를 다루는 것이 주된 목적이기에, 프로그래밍 연습을 하려면 '데이터'가 필요하다.

    R Studio를 설치하면 샘플용으로 사용할 수 있도록 데이터 셋들이 내장되어 있어 용할 수 있다.

     

    Script 창에 아래와 같이 타이핑하고 실행해보자 (타이핑한 두 줄을 마우스로 드래그해서 선택하고, Ctrl키를 누른 상태에서 Enter키 누른다.)

    data(ChickWeight) 

    View(ChickWeight)

    data(ChickWeight)는, 'ChickWeight'라는 데이터를 사용하겠다는 명령어이고,

    View(ChickWeight)는, 데이터를 엑셀의 그리드모양으로 보여주라는 명령. (View의 V가 대문자라는데 주의)

     

     

    Script 윈도우에 ChickWeight라는 탭이 생기면서 데이터들이 테이블형태로 나왔다.

     

    데이터를 보면, 578개의 행과 Weight, Time, Chick, Diet라는 4개의 열(Column)로 이루어져 있다.

    • Weight: 각 Chick(병아리)들의 무게

    • Time: 무게를 잴 때의 병아리 나이(부화한 후의 날 수) 1일~21일

    • Chick: 1~50번까지의 병아리 번호

    • Diet: 병아리에게 투여한 모이 종류 1~4가지

    ChickWeight라는 데이터가 있는 지를 어떻게 알았을까?

    R에서 어떤 샘플데이터셋이 있는지를 알아보는 명령어가 있다. data()

     

    스크립트 창 혹은 Console창에 data()라고 타이핑하고 실행해보자.

    data()

    R에서 제공되는 샘플 데이터셋들을 보여줄 것이다.

     

     

     

    여기서, 제공되는 데이터셋들이 어떤 내용인지를 알려면 물음표(?) 뒤에 datasets::<데이터셋 이름> 을 치면 된다.

    ChickWeight 데이터셋을 알고 싶으면,

    ? datasets::ChickWeight

    이렇게 하면, 오른쪽 하단부 윈도우에 ChickWeight에 대한 설명글이 웹 페이지 형태로 보여진다. (R에서 사용할 수 있는 명령어, 데이터 들은 모두 이런 형태의 도움말로 구성된다.)

     

     

    ChickWeight의 설명글에서 제일 하단부에 보면 Examples가 있다. 이것을 실행해보자.

    Examples 밑에 있는 세 줄을 Copy해서, R Studio의 스크립트 창에 붙여넣기 한 후 실행하자. (해당 명령어 3줄을 마우스로 드래그 후 Ctrl-Enter)

    require(graphics)
    coplot(weight ~ Time | Chick, data = ChickWeight,
           type = "b", show.given = FALSE)

     

     

    오른쪽 하단부 윈도우에, Plots라는 탭에 그래프가 생겼다. (Help탭을 눌러보면 방금 전에 보았던 ChickWeight에 대한 도움말이 그대로 있을 것임)

     

    require(graphics)는, graphics라는 패키지를 로딩하는 명령어이다. 다음 줄에 있는 coplot라는 함수가 들어 있는 것이 graphics라는 패키지이기에 있기에 graphics 패키지를 로딩하는 명령어를 쓴 것이다. (사실 graphics 패키지는 R Studio가 시작될 때 기본으로 로드되는 패키지이기에 require명령없이 바로 coplot함수를 사용해도 무방한다.)

     

    coplot은 두 변수간의 관계를 그래프로 그려주는 함수로(Conditioning Plot), coplot(y ~ x | a)은 x에 따른 y의 값을  a라는 조건별로 그린다.

    따라서, coplot(weight ~ Time | Chick, data =  ChickWeight) 이라는 것은, 병아리의 날 수(Time)에 따른 몸무게(weight)를 각 병아리 번호(Chick) 50개별로 그리라는 의미가 된다.

     

    coplot에 대한 도움말을 보려면, 물음표 뒤한 coplot이라고 치면 도움말이 나온다.

    ? coplot

     

     

     

    간단히 R에 내장되어 있는 샘플 데이터를 가지고 R의 가지고 있는 그래프기능을 봤다.

    샘플로 본 ChickWeight 데이터는 엑셀 같은 스프레드시트에서 익숙하게 봤던 데이터 구조로, R에서는 Data Frame이라는 데이터 객체이다. 즉, ChickWeight라는 객체안에 위에서 봤던 weight, Time, Chick, Diet 데이터가 다 들어 있는 것으로, C나 Java같은 언어와는 달리 R에만 있는 데이터객체이다.

    이러한 데이터객체들이 일반 프로그래머가 초반에 R언어에게 느끼는 가장 낯선점으로, 먼저 이러한 데이터객체들에 익숙해져야할 것이다.

     

    다음 장 부터는 R에서 기본으로 사용하는 데이터객체와 연산자들에 대해 알아본다.

     

    -끝-

     

     

     

    반응형