[R 프로그래밍] 10. Packages

Author : tmlab / Date : 2016. 10. 4. 01:03 / Category : Lecture/R 프로그래밍

PR 9

Packages

조혁준

2016-04-28


Packages

  • R에서 기본적으로 제공하는 함수 외에 다른 프로그래머들이 필요하다고 생각해서 만들어 놓은 함수들의 모음입니다
  • 그걸 서로 공유해서 사용하는거죠
  • 이걸 보통 library 또는 API라고 부릅니다
  • R에서는 보통 CRAN에서 R 재단이 인정한 패키지들을 공유합니다
    • 비공식적이지만 개인이 만들어서 공유하는 패키지들이 있는데 보통 github에 올라와 있습니다

설치

  • 이미 해보셨겠지만 설치할때 사용하는 명령어는 install.packages입니다.
  • 다음수업부터 사용할 ggplot2 패키지를 설치해보겠습니다
In [ ]:
install.packages("ggplot2")
  • 해당 명령어는 패키지가 깔려 있어도 실행하면 계속 인스톨합니다
    • 그러니 한번 깔면 지우거나 주석처리합시다...

불러오기

  • 패키지를 불러올 때 사용하는 명령어는 library(package 이름)또는require(package 이름)입니다.
    • library와 require의 차이는 library는 패키지가 있으면 불러오는 거고, require는 불러오려는 시도를 하고 logical한 return값을 반환합니다.
    • 그냥 library쓰세요...
In [3]:
b<-library(ggplot2)
b
Out[3]:
  1. "ggplot2"
  2.  
  3. "stats"
  4.  
  5. "graphics"
  6.  
  7. "grDevices"
  8.  
  9. "utils"
  10.  
  11. "datasets"
  12.  
  13. "methods"
  14.  
  15. "base"
In [4]:
a<-require(ggplot2)
a
Out[4]:
TRUE
  • 이제부터 ggplot2의 함수들을 사용할 수 있습니다
In [18]:
qplot(x=cyl,y=mpg,data=mtcars,geom="point",color=cyl,main="example")

패키지 업데이트 방법

  • 패키지 개발자가 자신이 만든 패키지의 기능을 보완하거나, R버전이 업데이트 되서 호환이 되게 수정하거나 오류사항을 수정해서 다시 올리는 일이 있습니다
  • 이 때 패키지를 업데이트 해줘야 합니다
  • 명령어는 update.packages(패키지 이름)입니다
  • R studio를 쓰시는 경우에는 우측 하단에 packages라는 탭이 보이는데, 해당 탭 바로 밑에 update라는 항목이 보일겁니다.
    • 이걸 누르고 원하는 패키지 또는 전체 패키지를 선택하고 업데이트 눌러주시면 됩니다
In [ ]:
update.packages("ggplot2")

비공식 패키지 인스톨 하기

  • 이제 비공식적인 패키지들을 까는 법을 설명하겠습니다
    • github에 있는 패키지들을 까는 법을 배울겁니다
    • 먼저 devtools라는 패키지를 사용해야 합니다
In [ ]:
install.packages("devtools")
In [6]:
library(devtools)
  • github에 있는 패키지를 인스톨 하는 방법은 install_github("아이디/저장소") 입니다
    • 저는 halrequin이란 아이디를 가진 사람이 올린 func 저장소에 있는 패키지를 인스톨 하겠습니다
    • 해당 저장소에 들어 있는 패키지의 이름은 rcv로 들어있는 함수는 단 하나입니다
In [ ]:
install_github("halrequin/func")
In [21]:
library(rcv)
  • rcv 함수는 패키지가 인스톨 되어 있으면 그냥 불러오고, 인스톨 되어 있지 않다면 인스톨 후 불러오는 함수 입니다
    • 여러개의 함수를 동시에 불러올 수 있습니다
In [22]:
rcv(c("ggplot2","MASS","devtools"))
In [36]:
rcv
function (x) 
{
    for (i in x) {
        if (!is.element(i, .packages(all.available = TRUE))) {
            install.packages(i)
        }
        library(i, character.only = TRUE)
    }
}

불러온 패키지 사용중지하기

  • R에선 패키지별로 함수의 이름이 중복이 될 수 있습니다
    • 따라서 순서가 틀릴 경우 에러가 날 수 있는데요, 이 때 패키지를 불러온 것을 취소하고 다시 불러올 수 있습니다
    • 명령어는 detach('package: 패키지 이름',unload=T)입니다
In [5]:
detach("package:ggplot2",unload=T)

함수 중복시 해결방안

  • 하지만 항상 detach 하고 다시 부르기엔 귀찮을 수 있습니다
  • 그럴땐 패키지 이름::함수명으로 사용할 수 있습니다
  • 이 방법은 패키지 콜링을 안하고 해당 함수를 사용할 때도 사용할 수 있습니다.
In [10]:
ggplot2::qplot(x=cyl,y=mpg,data=mtcars,geom="point",color=cyl,main="example")

과제

  1. dplyr패키지를 인스톨하세요
  2. 인스톨한 패키지를 콜링하세요
  3. devtools패키지를 콜링한다음에 github에 있는 패키지를 하나 인스톨해보세요


Archives

05-17 07:47

Contact Us

Address
경기도 수원시 영통구 원천동 산5번지 아주대학교 다산관 429호

E-mail
textminings@gmail.com

Phone
031-219-2910

Tags

Calendar

«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Copyright © All Rights Reserved
Designed by CMSFactory.NET