05-06 06:36
Notice
Recent Posts
Recent Comments
관리 메뉴

Scientific Computing & Data Science

[Data Mining with R Programming] 패키지와 데이터 기본 본문

Data Science/Data Mining with R Programming

[Data Mining with R Programming] 패키지와 데이터 기본

cinema4dr12 2014. 2. 26. 23:49

[커맨드 패키지]

R은 패키지(packages)라 불리우는 일련의 모듈들로 구성되어 있다. R을 시작할 때, 기본적으로 탑재된 패키지로 로딩되는데 현재 로딩된 패키지 리스트를 확인하려면 다음과 같이 입력한다:

> search() [1] ".GlobalEnv" "tools:RGUI" "package:stats" "package:graphics" "package:grDevices" "package:utils" "package:datasets" [8] "package:methods" "Autoloads" "package:base"



[표준 패키지]

현재 로딩되어 있지는 않지만 사용가능한 패키지(물론 이들중에는 시작 시 자동으로 로딩되는 패키지들도 있다)의 리스트를 확인하려면 다음과 같이 입력한다:

> installed.packages() Package LibPath Version Priority base "base" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "3.0.2" "base" boot "boot" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "1.3-9" "recommended" class "class" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "7.3-9" "recommended" cluster "cluster" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "1.14.4" "recommended" codetools "codetools" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "0.2-8" "recommended" compiler "compiler" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "3.0.2" "base" datasets "datasets" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "3.0.2" "base" foreign "foreign" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "0.8-59" "recommended" graphics "graphics" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "3.0.2" "base" grDevices "grDevices" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "3.0.2" "base" grid "grid" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "3.0.2" "base" KernSmooth "KernSmooth" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "2.23-10" "recommended" lattice "lattice" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "0.20-24" "recommended" MASS "MASS" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "7.3-29" "recommended" Matrix "Matrix" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "1.1-2" "recommended" methods "methods" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "3.0.2" "base" mgcv "mgcv" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "1.7-28" "recommended" nlme "nlme" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "3.1-113" "recommended" nnet "nnet" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "7.3-7" "recommended" nutshell "nutshell" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "2.0" NA nutshell.audioscrobbler "nutshell.audioscrobbler" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "1.0" NA nutshell.bbdb "nutshell.bbdb" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "1.0" NA parallel "parallel" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "3.0.2" "base" rpart "rpart" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "4.1-5" "recommended" spatial "spatial" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "7.3-7" "recommended" splines "splines" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "3.0.2" "base" stats "stats" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "3.0.2" "base" stats4 "stats4" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "3.0.2" "base" survival "survival" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "2.37-7" "recommended" tcltk "tcltk" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "3.0.2" "base" tools "tools" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "3.0.2" "base" utils "utils" "/Library/Frameworks/R.framework/Versions/3.0/Resources/library" "3.0.2" "base" Depends Imports LinkingTo base NA NA NA boot "R (>= 3.0.0), graphics, stats" NA NA class "R (>= 3.0.0), stats, utils" "MASS" NA cluster "R (>= 2.10.0), stats, graphics, utils" NA NA codetools "R (>= 2.1)" NA NA compiler NA NA NA datasets NA NA NA foreign "R (>= 3.0.0), stats" "methods, utils" NA graphics NA "grDevices" NA grDevices NA NA NA grid NA "grDevices" NA KernSmooth "R (>= 2.5.0), stats" NA NA lattice "R (>= 2.15.1)" "grid, grDevices, graphics, stats, utils" NA MASS "R (>= 3.0.0), grDevices, graphics, stats, utils" NA NA Matrix "R (>= 2.15.2), methods" "graphics, grid, stats, utils, lattice" NA methods NA "utils" NA mgcv "R (>= 2.14.0), nlme (>= 3.1-64)" "methods, stats, graphics, Matrix" NA nlme "graphics, stats, R (>= 3.0.0)" "lattice" NA nnet "R (>= 2.14.0), stats, utils" NA NA nutshell "R (>= 2.10), nutshell.bbdb, nutshell.audioscrobbler" NA NA nutshell.audioscrobbler "R (>= 2.10)" NA NA nutshell.bbdb "R (>= 2.10)" NA NA parallel NA "tools" NA rpart "R (>= 2.15.0), graphics, stats, grDevices" NA NA spatial "R (>= 3.0.0), graphics, stats, utils" NA NA splines NA "graphics, stats" NA stats NA NA NA stats4 "methods, graphics, stats" NA NA survival "stats, utils, graphics, splines, R (>= 2.13.0)" NA NA tcltk NA "utils" NA tools NA NA NA utils NA NA NA Suggests Enhances License License_is_FOSS base NA NA "Part of R 3.0.2" NA boot "MASS, survival" NA "Unlimited" NA class NA NA "GPL-2 | GPL-3" NA cluster "MASS" NA "GPL (>= 2)" NA codetools NA NA "GPL" NA compiler NA NA "Part of R 3.0.2" NA datasets NA NA "Part of R 3.0.2" NA foreign NA NA "GPL (>= 2)" NA graphics NA NA "Part of R 3.0.2" NA grDevices NA NA "Part of R 3.0.2" NA grid "lattice" NA "Part of R 3.0.2" NA KernSmooth "MASS" NA "Unlimited" NA lattice "KernSmooth, MASS" "chron" "GPL (>= 2)" NA MASS "lattice, nlme, nnet, survival" NA "GPL-2 | GPL-3" NA Matrix "expm, MASS" "MatrixModels, graph, SparseM, sfsmisc" "GPL (>= 2)" NA methods NA NA "Part of R 3.0.2" NA mgcv "splines, parallel" NA "GPL (>= 2)" NA nlme "Hmisc, MASS" NA "GPL (>= 2)" NA nnet "MASS" NA "GPL-2 | GPL-3" NA nutshell "MASS, RSQLite, arules, lattice, survival" NA "CC BY-NC-ND 3.0 US" NA nutshell.audioscrobbler "arules" NA "CC BY-NC-SA 3.0" NA nutshell.bbdb "RSQLite" NA "CC BY-NC-ND 3.0 US" NA parallel NA "snow, nws, Rmpi" "Part of R 3.0.2" NA rpart "survival" NA "GPL-2 | GPL-3" NA spatial "MASS" NA "GPL-2 | GPL-3" NA splines NA NA "Part of R 3.0.2" NA stats NA NA "Part of R 3.0.2" NA stats4 NA NA "Part of R 3.0.2" NA survival NA NA "LGPL (>= 2)" NA tcltk NA NA "Part of R 3.0.2" NA tools NA NA "Part of R 3.0.2" NA utils NA NA "Part of R 3.0.2" NA License_restricts_use OS_type MD5sum NeedsCompilation Built base NA NA NA NA "3.0.2" boot NA NA NA NA "3.0.2" class NA NA NA "yes" "3.0.2" cluster NA NA NA "yes" "3.0.2" codetools NA NA NA NA "3.0.2" compiler NA NA NA NA "3.0.2" datasets NA NA NA NA "3.0.2" foreign NA NA NA "yes" "3.0.2" graphics NA NA NA NA "3.0.2" grDevices NA NA NA NA "3.0.2" grid NA NA NA NA "3.0.2" KernSmooth NA NA NA "yes" "3.0.2" lattice NA NA NA "yes" "3.0.2" MASS NA NA NA "yes" "3.0.2" Matrix NA NA NA "yes" "3.0.2" methods NA NA NA NA "3.0.2" mgcv NA NA NA "yes" "3.0.2" nlme NA NA NA "yes" "3.0.2" nnet NA NA NA "yes" "3.0.2" nutshell NA NA NA NA "3.0.2" nutshell.audioscrobbler NA NA NA NA "3.0.2" nutshell.bbdb NA NA NA NA "3.0.2" parallel NA NA NA NA "3.0.2" rpart NA NA NA "yes" "3.0.2" spatial NA NA NA "yes" "3.0.2" splines NA NA NA NA "3.0.2" stats NA NA NA NA "3.0.2" stats4 NA NA NA NA "3.0.2" survival NA NA NA "yes" "3.0.2" tcltk NA NA NA NA "3.0.2" tools NA NA NA NA "3.0.2" utils NA NA NA NA "3.0.2"

위의 리스트에서 보는 바와 같이, 다음의 정보들이 표시된다:

  • Package (패키지 이름)
  • LibPath (라이브러리(패키지) 경로)
  • Version (버전)
  • Priority (우선순위 (base / recommended / N/A))
  • Depends (의존성)
  • Imports (임포트)
  • LinkingTo Suggests
  • Enhances
  • License (라이선스 정책)
  • License_is_FOSS
  • License_restricts_use
  • OS_type
  • MD5sum
  • NeedsCompilation
  • Built



[패키지 로드하기]

"nutshell"이라는 패키지를 로드하려면 다음과 같이 입력한다:

> library(nutshell) 필요한 패키지를 로딩중입니다: nutshell.bbdb 필요한 패키지를 로딩중입니다: nutshell.audioscrobbler



[패키지 매니저를 이용하여 패키지 로드하기]

"메뉴 > Packages & Data > Package Manager"를 통해 R Package Manager를 열 수 있다.

"status"에서 로딩 된 패키지의 상태를 확인할 수 있으며 체크박스를 클릭하여 패키지를 로드한다. 클릭하는 순간 아래 부분에 패키지에 대한 정보를 표시해 준다.



[패키지 인스톨러를 이용하여 패키지 설치하기]

별도의 패키지를 설치하려면 패키지 인스톨러를 이용한다. 패키지 인스톨러는 "메뉴 > Packages & Data > Package Installer"를 선택하여 열 수 있다. Package Repository는 몇몇 경로가 존재하는데 그 중 가장 많은 패키지(2,600개 이상의 추가 패키지)를 보유한 웹사이트는 CRAN이며, 바이너리와 소스 모두를 제공받을 수 있다. Package Repository를 선택 후, "Get List" 버튼을 클릭하면 해당 Repository의 패키지를 리스트가 출력된다. 이 중 설치를 원하는 패키지를 선택하고 "Install Selected" 버튼을 클릭한다. 만약 해당 Repository의 모든 패키지를 설치하려면 "Update All" 버튼을 클릭한다.



[데이터 매니저 로드하기]

R은 "R Data Manager"를 통해 사용자가 연습할 수 있도록 다양한 테스트용 데이터를 제공한다. 예를 들어, R을 배우는데 있어 바이블이라 할 수 있는 O'Reilly 출판사의 "R in a Nutshell"의 데이터를 테스트용으로 사용할 수 있다. "메뉴 > Packages & Data > Data Manager"를 선택하면 "R Data Manager" 창이 열린다.

예를 들어 "R in a Nutshell"이 제공하는 2008년도 메이저리그(MLB) 타격에 대한 테스트용 데이터를 로드해 보자. "Search"란에 "mlb" 키워드로 검색하면 다음과 같은 결과가 보일 것이다.

"batting.2008" 데이터를 선택하면 아래 부분에 데이터 로딩에 대한 사용법(usage)에 대한 설명이 있다. 다음과 같이 입력해 보자:

> library(nutshell) > data(batting.2008) > batting.2008[1:5, ] nameLast nameFirst weight height bats throws debut birthYear playerID yearID stint teamID lgID G G_batting AB R H 2B 3B HR RBI SB CS BB SO IBB HBP SH 1 Abreu Bobby 200 72 L R 1996-09-01 1974 abreubo01 2008 1 NYA AL 156 156 609 100 180 39 4 20 100 22 11 73 109 2 1 0 2 Alou Moises 190 75 R R 1990-07-26 1966 aloumo01 2008 1 NYN NL 15 15 49 4 17 2 0 0 9 1 1 2 4 0 2 0 3 Anderson Garret 190 75 L L 1994-07-27 1972 anderga01 2008 1 LAA AL 145 145 557 66 163 27 3 15 84 7 4 29 77 6 1 0 4 Anderson Marlon 198 71 L R 1998-09-08 1974 anderma02 2008 1 NYN NL 87 87 138 16 29 6 0 1 10 2 1 9 27 0 0 2 5 Ankiel Rick 210 73 L L 1999-08-23 1979 ankieri01 2008 1 SLN NL 120 120 413 65 109 21 2 25 71 2 1 42 100 3 5 0 SF GIDP G_old 1 1 14 156 2 1 1 15 3 6 11 145 4 2 2 87 5 3 8 120

위의 내용은

  • library(nutshell) : "nutshell" 라이브러리(패키지)를 로드하고
  • data(batting.2008) : "batting.2008" 데이터를 로드하고
  • batting.2008[1:5, ] : 로드된 "batting.2008" 데이터 중 일부(5개)를 출력

하는 일련의 명령어이다. 기본적으로 R에서의 데이터 저장 형식은 테이블 형식으로 되어 있으며 - 마치 Microsoft EXCEL 처럼 - 행과 열을 가지고 있다.

즉, data[1:5, ]는 1에서 5까지 행을 출력하되 열은 전체를 표시하라는 의미이다.

Mathworks MATLAB에 사용에 익숙한 사용자라면 전혀 낯설지 않은 용법일 것이다. 물론 MATLAB에서는 열 전체를 표시하기 위해 data[1:5, :]와 같은 출력 형식을 갖는다.

Comments