獨斷論

통계 R 사용설명서 1 - 첫시간에는 무작정 따라하기 본문

과학과 기술/R 통계

통계 R 사용설명서 1 - 첫시간에는 무작정 따라하기

부르칸 2016. 2. 3. 00:30

첫시간에는 무작정 따라하기부터 해보자.

 

1. R 설치

통계 GNU R을 설치하려면 https://cran.r-project.org/mirrors.html로 가서 자신이 사는 곳에 가까운 곳의 서버를 선택하여 설치하면 된다.  서울대 서버의 주소는 http://healthstat.snu.ac.kr/CRAN/이다. 리눅스와 OSX와 윈도우에서 모두 사용할수 있다. R은 한번 설치한 후에 새로운 업그레이드가 나와도 업그레이드 하는 기능이 없으므로 기존버전을 지우고 새로운 업그레이드 버전을 설치해야 한다.

 

2. 간단한 명령 따라해보기

윈도우의 경우에는 시작버튼을 누르고 R 메뉴에서 R-i386-3.x.x나 R-x64-3.x.x를 클릭하면 된다. 리눅스는 console에서 R이라고 입력하면 된다. OSX는 써본적이 없으니 사용자들이 알아서 하시길 ㅎㅎ

 

윈도우 사용자는 아래와 같은 썰렁한 창이 하나 뜰것이다. 리눅스는 더 썰렁하다.

썰렁한게 싫다면 R을 설치한 후에 rstudio라는걸 설치해도 된다(https://www.rstudio.com/)

첫번째건 SDI로 설정했을때 모양이고 두번째건 MDI로  설정했을때 몽양인데 별 복잡한 기능도 없는데 굳이 MDI로 할 필요가 없다. SDI로 설정하는게 간단하고 좋다. R창의 메뉴 Edit > GUI preferences를 클릭하여 "Single or multiple"을 SDI로 설정한 후에 Save를 누르고 OK를 클릭하고 난 뒤 R을 다시 실행하면 그 모양이 single로 바뀐다.

 



 

이제 간단한 명령들을 실행해가면서 R이 어떤놈인지 맛만 보자.

 

25의 제곱근에 2를 더하여 변수 x에 저장하기

R console에 x <- sqrt(25) + 2 라고 입력한 후에 엔터를 치면 된다.

그 결과값을 보고자 한다면 x를 입력한후에 엔터를 치면 된다.

R은 기본적으로 그 결과값을 보여주지 않으며 변수 선언도 필요가 없다. 장점이긴 하지만 변수명을 실수로 입력하였을때 에러가 발생하지 않고 새로운 변수를 생성하게 되므로 나중에 에러를 잡는데 골치가 좀 아플수 있으니 변수명을 입력할때 조심하도록 하자. <- 대신에 =를 써도 무방하다. 아주 옛날 버전에서는 안된다.

 

x의 값을 알기 위해서 x를 입력후에 엔터를 쳐도 되지만 아래와 같이 해도 된다. 1번 라인에서 x에 25의 제곱근에 2를 더하여 저장하였고 2번 라인에서 print(x)명령어를 이용하여 x를 console에 출력하였으며 그 결과가 3번 라인에 나타났다.

 

1
2
3
 > x <- sqrt(25) + 2
 > print(x)

 [1] 7

 

 

도움말 보기

도움말은 help()를 이용하면 된다. 만약 mean()이라는 함수의 도움말을 보고자 한다면 다음과 같이 한다.

 

1  > help("mean")

 

물음표를 이용하면 더 간단하다.

 

1  > ?mean

 

 

패키지 설치

R의 패키지는 matlab의toolbox과 같은 것이다. 만약에 car라는 패키지를 설치하기를 원한다면 다음과 같이 실행하면 된다. dependencies=TRUE는 패키지 car와 관련된 모든 패키지를 알아서 설치해주는 선택사항이다.

 

1  > install.packages("car", dependencies=TRUE)

 

설치후 car라는 패키지를 사용하려면 아래와 같이 한다. 설치하는 명령어에서는 따옴표를 사용하였지만 아래에서는 따옴표가 없음을 유의한다.

 

1  > library(car)

 

HSAUR이라는 패키지도 유용하게 앞으로 사용되므로 미리 설치해두자. 설치방법은 위와 똑같이 car대신에 HSAUR를 입력하면 된다. R은 대소문자를 구별하므로 주의하자.

 

 

내장된 데이터 불러오기

패키지 HSAUR에 내장된 데이터를 불러와보자. 1번 라인에서 HSAUR이라는 패키지를 불러왔다. 2번 라인에서 Forbes2000이라는 데이터를 HSAUR이라는 패키지에서 불러왔다. ls()라는 명령어는 현재 상주해있는 모든 데이터와 변수들을 보여준다. 앞서 만들었던 변수 x와 지금 불러온 데이터 Forbes2000이 그 결과로 출력되었다.

 

1
2
3
4
 > library(HSAUR)
 > data("Forbes2000", package = "HSAUR")
 > ls()
 [1] "Forbes2000" "x" 

 

불러온 Forbes2000이라는 데이터의 모양과 내용이 궁금하다면 아래와 같이 View()나 str()을 실행한다.

View()를 실행하면 새로운 창이 떠서 그 내용을 보여주며 str()은 그 대략을 보여준다. 물론 print(Forbes2000)을 할수도 있지만 그리 좋은 방법은 아니것 같다.

> View(Forbes2000)
> str(Forbes2000)
'data.frame':	2000 obs. of  8 variables:
 $ rank       : int  1 2 3 4 5 6 7 8 9 10 ...
 $ name       : chr  "Citigroup" "General Electric" "American Intl Group" "ExxonMobil" ...
 $ country    : Factor w/ 61 levels "Africa","Australia",..: 60 60 60 60 56 60 56 28 60 60 ...
 $ category   : Factor w/ 27 levels "Aerospace & defense",..: 2 6 16 19 19 2 2 8 9 20 ...
 $ sales      : num  94.7 134.2 76.7 222.9 232.6 ...
 $ profits    : num  17.85 15.59 6.46 20.96 10.27 ...
 $ assets     : num  1264 627 648 167 178 ...
 $ marketvalue: num  255 329 195 277 174 ...

위 3번줄에서 Forbes2000이라는 데이터는 그 데이터 구조가 data.frame이라는 것을 보여준다. 그리고 변수는 8개이고 observations 또는 subjectives의 갯수가 2000이라고 알려준다. 그리고 $ 옆에 쓰여진 것들은 8개의 변수를 보여주는 것이다. rank라는 변수는 정수형으로 그 값이 1, 2, 3, ... 등이고, name은 문자형으로 그 값이 Citigroup, General Electric,.. 등이다. countrycategory는 Factor형이며 sales, profits, assets, marketvalue는 실수형이다.

 

이밖에 데이터 Forbes2000에 대한 몇가지 정보를 얻기위한 명령어를 소개하면 아래와 같다

 > help("Forbes2000")
 starting httpd help server ... done
 > class(Forbes2000)
 [1] "data.frame"
 > dim(Forbes2000)
 [1] 2000    8
 > nrow(Forbes2000)
 [1] 2000
 > ncol(Forbes2000)
 [1] 8
 > names(Forbes2000)
 [1] "rank"        "name"        "country"     "category"    "sales"       "profits"   
 [7] "assets"      "marketvalue"

3번줄은 Forbes2000의 데이터 형이 무엇인지를 보여주는 것인데 여기서는 객체지향프로그래밍의 object의 class가 어디에 속하는 것인지 보여주는 문법이다. 

5번줄은 Forbes2000의 차원을 보여주는데 행이 2000개 즉 observations가 2000개, 열이 8개 즉 변수가 8개라는 뜻이다. 이와 비슷하게 행의 갯수는 nrow()로 알수 있고 열의 갯수는 ncol()로 알수도 있다. Forbes2000의 변수의 이름들은 names()라는 함수를 이용하면 된다.

Comments