Python은 Jupyter Notebook, R은 RStudio 라고만 알고 있는 분도 계실텐데요, IRKernel을 설치해주면 Jupyter Notebook에서도 R을 사용할 수 있습니다


이번 포스팅에서는 Jupyter Notebook에서 R을 사용할 수 있도록 하는 방법을 소개하겠습니다. 

(MacOS, Anaconda, Python3.6 version 환경)


명령 프롬프트 창(prompt window, terminal) 에서 아래의 절차에 따라서 IRKernel을 설치해주시면 됩니다. 

(RStudion에서 설치를 하려고 하면 에러가 납니다. 명령 프롬프트창/ Terminal에서 진행하기 바랍니다)



  1. Jupyter Notebook 사용할 수 있도록 IRKernel 설치하기



(1) 명령 프롬프트 창(terminal)에서 'R' 을 써주고 엔터 => R을 실행합니다. 



MacBook-Pro:~ ihongdon$

MacBook-Pro:~ ihongdon$ R


R version 3.6.0 (2019-04-26) -- "Planting of a Tree"

Copyright (C) 2019 The R Foundation for Statistical Computing

Platform: x86_64-apple-darwin15.6.0 (64-bit)

 





(2) devtools 패키지를 설치합니다: install.packages('devtools')


'현재 세션에서 사용할 CRAN 미러를 선택해 주세요' 라는 메시지와 함께 콤보 박스 창이 뜨면 서버 아무거나 선택하면 됩니다. 저는 'SEOUL' 선택했습니다. 



>

> install.packages('devtools')

--- 현재 세션에서 사용할 CRAN 미러를 선택해 주세요 ---


SEOUL



경고: 저장소 https://cran.seoul.go.kr/bin/macosx/el-capitan/contrib/3.6에 대한 인덱스에 접근할 수 없습니다:

  URL 'https://cran.seoul.go.kr/bin/macosx/el-capitan/contrib/3.6/PACKAGES'를 열 수 없습니다

소스형태의 패키지 ‘devtools’(들)를 설치합니다.


URL 'https://cran.seoul.go.kr/src/contrib/devtools_2.2.1.tar.gz'을 시도합니다

Content type 'application/x-gzip' length 372273 bytes (363 KB)

==================================================

downloaded 363 KB


* installing *source* package ‘devtools’ ...

** 패키지 ‘devtools’는 성공적으로 압축해제되었고, MD5 sums 이 확인되었습니다

** using staged installation

** R

** inst

** byte-compile and prepare package for lazy loading

** help

*** installing help indices

*** copying figures

** building package indices

** installing vignettes

** testing if installed package can be loaded from temporary location

** testing if installed package can be loaded from final location

** testing if installed package keeps a record of temporary installation path

* DONE (devtools)


다운로드한 소스 패키지들은 다음의 위치에 있습니다

‘/private/var/folders/6q/mtq6ftrj6_z4txn_zsxcfyxc0000gn/T/Rtmpg1bePN/downloaded_packages’

>

 




(3) IRkernel 설치: devtools::install_github('IRkernel/IRkernel') 실행합니다. 



>

> devtools::install_github('IRkernel/IRkernel')

Downloading GitHub repo IRkernel/IRkernel@master

'/usr/local/bin/git' clone --depth 1 --no-hardlinks --recurse-submodules https://github.com/jupyter/jupyter_kernel_test.git /var/folders/6q/mtq6ftrj6_z4txn_zsxcfyxc0000gn/T//Rtmpg1bePN/remotes36921150b621/IRkernel-IRkernel-67592db/tests/testthat/jkt

'/var/folders/6q/mtq6ftrj6_z4txn_zsxcfyxc0000gn/T//Rtmpg1bePN/remotes36921150b621/IRkernel-IRkernel-67592db/tests/testthat/jkt'에 복제합니다...

remote: Enumerating objects: 12, done.

remote: Counting objects: 100% (12/12), done.

remote: Compressing objects: 100% (11/11), done.

remote: Total 12 (delta 1), reused 3 (delta 0), pack-reused 0

오브젝트 묶음 푸는 중: 100% (12/12), 완료.

'/usr/local/bin/git' clone --depth 1 --no-hardlinks --recurse-submodules https://github.com/flying-sheep/ndjson-testrunner.git /var/folders/6q/mtq6ftrj6_z4txn_zsxcfyxc0000gn/T//Rtmpg1bePN/remotes36921150b621/IRkernel-IRkernel-67592db/tests/testthat/njr

'/var/folders/6q/mtq6ftrj6_z4txn_zsxcfyxc0000gn/T//Rtmpg1bePN/remotes36921150b621/IRkernel-IRkernel-67592db/tests/testthat/njr'에 복제합니다...

remote: Enumerating objects: 10, done.

remote: Counting objects: 100% (10/10), done.

remote: Compressing objects: 100% (8/8), done.

remote: Total 10 (delta 0), reused 6 (delta 0), pack-reused 0

오브젝트 묶음 푸는 중: 100% (10/10), 완료.

Skipping 1 packages ahead of CRAN: htmltools

   checking for file ‘/private/var/folders/6q/mtq6ftrj6_z4txn_zsxcfyxc0000gn/T/Rtmpg1bePN/remotes36921150b621/IRkernel✔  checking for file ‘/private/var/folders/6q/mtq6ftrj6_z4txn_zsxcfyxc0000gn/T/Rtmpg1bePN/remotes36921150b621/IRkernel-IRkernel-67592db/DESCRIPTION’

─  preparing ‘IRkernel’:

✔  checking DESCRIPTION meta-information ...

─  checking for LF line-endings in source and make files and shell scripts

─  checking for empty or unneeded directories

   Removed empty directory ‘IRkernel/example-notebooks’

─  building ‘IRkernel_1.0.2.9000.tar.gz’


* installing *source* package ‘IRkernel’ ...

** using staged installation

** R

** inst

** byte-compile and prepare package for lazy loading

** help

*** installing help indices

** building package indices

** testing if installed package can be loaded from temporary location

** testing if installed package can be loaded from final location

** testing if installed package keeps a record of temporary installation path

* DONE (IRkernel)

>

 




(4) IRkernel::installspec()  확인



>

> IRkernel::installspec()

[InstallKernelSpec] Installed kernelspec ir in /Users/ihongdon/Library/Jupyter/kernels/ir

>

 



만약 아래와 같은 메시지가 떴다면 이는 아마도 위의 (1), (2), (3) 절차를 "명령 프롬프트 창(Terminal)"에서 실행한 것이 아니라 "RStudio"에서 실행했기 때문일 것입니다. 


jupyter-client has to be installed but “jupyter kernelspec –version” exited with code 127.


위의 메시지가 떴다면 명령 프롬프트 창(prompt window, Terminal)을 하나 열고 위의 (1), (2), (3) 절차를 실행한 후에 (4)로 확인을 해보세요. 



Windows10 OS를 사용하는 분이라면 PATH에 아래 경로를 추가로 등록해보시기 바랍니다. 


 

 Anaconda\Lib\site-packages\jupyter_client


 C:\Users\Anaconda3\Scripts 



참고로 Windows 10, Windows 8에서 PATH 등록하는 법은 아래와 같습니다. 

[ Windows10 또는 Windows8 에서 PATH 등록 ]


  1. 시스템(제어판)’ 선택
  2. 고급 시스템 설정 링크선택(클릭)
  3. 환경변수선택 —> 시스템 변수 섹션에서 ‘PATH 환경변수선택 —> ‘편집선택 —> PATH 환경변수가 존재하지 않을 경우새로 만들기선택
  4. 시스템 변수 편집 (또는 시스템 변수)’ 창에서 PATH 환경 변수의 값을 지정 —> ‘확인선택 —> 나머지 모두 닫기





  2. Jupyter Notebook에서 R 사용해보기


R kernel 도 잘 설치가 되었으니 Jupyter Notebook에서 R을 사용해보겠습니다.  위의 R이 실행 중인 terminal 에서 'ctrl + z' 를 눌러서 빠져나옵니다. 


$ conda info -e (혹은 conda env list) 로 가상환경 목록을 확인하고, 

$ source activate [가상환경 이름] 으로 특정 가상환경으로 들어갑니다. 

(Windows OS 에서는 activate [가상환경 이름])

$ jupyter notebook 로 jupyter notebook 창을 열어줍니다. 



>

>

[1]+  Stopped                 R

MacBook-Pro:~ ihongdon$

MacBook-Pro:~ ihongdon$ conda info -e

# conda environments:

#

base                  *  /Users/ihongdon/anaconda3

py2.7_tf1.4              /Users/ihongdon/anaconda3/envs/py2.7_tf1.4

py3.5_tf1.4              /Users/ihongdon/anaconda3/envs/py3.5_tf1.4

py3.6_tf2.0              /Users/ihongdon/anaconda3/envs/py3.6_tf2.0


MacBook-Pro:~ ihongdon$

MacBook-Pro:~ ihongdon$

MacBook-Pro:~ ihongdon$ source activate py3.6_tf2.0

(py3.6_tf2.0) MacBook-Pro:~ ihongdon$

(py3.6_tf2.0) MacBook-Pro:~ ihongdon$ jupyter notebook

 




아래처럼 Jupyter Notebook 창이 뜨면 오른쪽 상단의 'New' 메뉴를 클릭하고, 여러 하위 메뉴 중 'R' 선택합니다. 





간단한 예제로 x, y 두개 변수로 구성된 R 데이터프레임을 하나 만들고, ggplot2 로 산점도를 그려보았습니다. 






다음으로 종속변수 y에 대해 설명변수 x를 사용한 선형회귀모형을 적합시켜 보았습니다. 




많은 도움이 되었기를 바랍니다. 

이번 포스팅이 도움이 되었다면 아래의 '공감~'를 꾹 눌러주세요. :-)





Posted by R Friend Rfriend

댓글을 달아 주세요

  1. 문과대학원생 2020.02.24 13:41  댓글주소  수정/삭제  댓글쓰기

    감사합니다. 우분투에서 Rstudio 한글지원도 제대로 안되고, 파이썬을 메인으로 사용하다보니 뭔가 불편했는데

    주피터 노트북에서 파이썬과 R 모두 사용할 수 있어서 좋네요.

  2. 애독자 2020.03.07 11:00  댓글주소  수정/삭제  댓글쓰기

    평상 시 가끔 들러서 게시된 글을 보곤 했습니다.
    감사하게 올리신 글들을 보고 있습니다.

    게시글을 보고 의문점이 있어서 댓글로 문의를 드립니다.
    anaconda에서 R을 설치한 경우 이후에 package 설치가 필요하다면
    모두 다음과 같이 conda 명령어를 써야 하나요?
    예) conda install -c r r-irkernel

    그냥 윈도우에 설치하는 경우 통상 '설치폴더/library'에 패키지가 설치되어 R버전 Upgrade 등 사유 발생 시
    대응할 수 있는데, conda로 설치하면 통상적인 경우와 같이 관리되지는 않는 것 같습니다.

    별도로 R을 설치하지 않고 conda에 설치한 경우 package 설치 및 관리는 어떻게 해야 하는지 의문입니다.

    또, 위 예와 같이 설치하려고 하면 version 충돌 때문인지 다음과 같이 메시지가 나타나면서
    오래 걸려서 자동으로 문제 해결되어 설치되는 경우도 있고 안되는 경우도 있는 것 같습니다.
    Collecting package metadata (current_repodata.json): done
    Solving environment: failed with initial frozen solve. Retrying with flexible solve.

    그리고 이 경우에 r-xxx 방식으로 설치되는 R의 패키지들만 대상으로만
    "Solving Environment"를 하는 것이 아니라 Python 모듈들과도 비교를 하는 것 같습니다.

    • R Friend Rfriend 2020.03.09 23:11 신고  댓글주소  수정/삭제

      안녕하세요.

      저는 RStudio 를 주로 사용하고 install.packages() 명령문으로 패키지 설치를 하곤 해서요 질문하신 에러를 미처 겪어보지 못했습니다.

      Jupyter notebook에서 R패키지 설치가 안되거나 R-essentials 에 없는 경우 대처할 수 있는 방안에 대해 참고할 수 있는 StackOverflow 링크를 찾아보았습니다.

      install.packages('readr', repos='http://cran.us.r-project.org')

      conda config --add channels r
      conda install r-readxl


      https://stackoverflow.com/questions/42459423/cannot-install-r-packages-in-jupyter-notebook

      https://stackoverflow.com/questions/34705917/conda-how-to-install-r-packages-that-are-not-available-in-r-essentials

  3. 살려주세요 2020.06.11 14:13  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 리눅스를 공부하고 있는 학생입니다.

    저는 anaconda 설치 후에 conda install -c r r-essentials을 이용해서 R을 설치하였습니다.

    그후 jupyter notebook을 사용하지 않고 PATH를 지정하여 R을 이용하려고 합니다.

    anaconda 설치후 생성된 anaconda3/bin 디렉토리에 R이 설치되어 있을 줄알았는데, R 실행파일이 생성되어 있지 않았습니다.

    이런경우는 R이 설치가 제대로 안되어있는 것일까요? 아니면 다른 경로에 R이 설치되어있는 것일까요?

    리눅스를 시작한지 얼마되지 않았고 독학으로 하고 있어서, 배경지식이 많이 부족합니다.

    감사합니다.

    • R Friend Rfriend 2020.06.11 15:27 신고  댓글주소  수정/삭제

      안녕하세요.

      저는 맥북 노트북이랑 윈도우즈 데스크탑을 사용하고 있어서요, 문의 주신 내용에 대해서 답변 못드리겠네요. 회사에서 리눅스에 R 설치는 데이터엔지니어분들께서 해주신거 그냥 쓰기만 해서요.(그냥 R 별도 설치하고, Jupyter Notebook으로는 커널만 연결해서 썼던거 같은데요...)

      아래에 리눅스에 R 설치 가이드 링크 남기오니 혹시 안보신거면 참고하시구요.

      https://docs.anaconda.com/anaconda/install/linux/