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 등록 ]
- ‘시스템(제어판)’ 선택
- ‘고급 시스템 설정 링크’ 선택(클릭)
- ‘환경변수’ 선택 —> 시스템 변수 섹션에서 ‘PATH 환경변수’ 선택 —> ‘편집’ 선택 —> PATH 환경변수가 존재하지 않을 경우 ‘새로 만들기’ 선택
- ‘시스템 변수 편집 (또는 새 시스템 변수)’ 창에서 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를 사용한 선형회귀모형을 적합시켜 보았습니다.
많은 도움이 되었기를 바랍니다.
이번 포스팅이 도움이 되었다면 아래의 '공감~'를 꾹 눌러주세요. :-)