Jupyter ++ R
2018-09-05
Jun Sok Huhh | ๐ lostineonomics.com
R์๋ ์ด๋ฏธ RStudio๋ผ๋ ํ๋ฅญํ ๊ฐ๋ฐํ๊ฒฝ(IDE: Integrated Development Environment)์ด ์๋ค. R์ ์ฐ๋ ์ฌ๋์ด๋ผ๋ฉด ํ๋ก์ ํธ ๊ด๋ฆฌ, ํธ๋ฆฌํ๊ณ ์ผ๊ด๋ ๊ฐ์ฒด(๋ฐ์ดํฐ ํ๋ ์ ๋ฑ) ๋ทฐ์ด, ์์ฐจ ์คํ ๋ฑ ์๋ง์ ํธ๋ฆฌํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ RStudio ์ธ์ ๋ค๋ฅธ ๋๊ตฌ๋ฅผ ๋ ์ฌ๋ฆฌ๊ธฐ ํ๋ค ๊ฒ์ด๋ค. Python์๋ RStudio๋ฅผ ๋ณธ๋ด IDE๊ฐ ์์ ์ ๋๋ ๊ทธ ์ฐ์์ฑ์ ์์ผ ๊ฐ์กฐํ ํ์๊ฐ ์๊ฒ ๋ค.
๊ทธ๋ ๋ค๋ฉด ์ Jupyter์ ๊ด์ฌ์ ๋์ด์ผ ํ ๊น? (์ฐธ๊ณ ๋ก Jupyter๋ ๊ณผ๊ฑฐ์ IPython์ผ๋ก ์๋ ค์ก๋ ๋ ธํธ๋ถ์ ํ์ ๋ฒ์ ์ด๋ค. ๋์ ๊ฑฐ์ 100% ํธํ๋๋ค.) ์ฌ์ค ๋๋ Jupyterํ๋ฉด ์ ์ ๋ก Python์ด ๋ ์ค๋ฅธ๋ค. ๊ทธ๋ฐ๋ฐ Jupyter๋ Python์์๋ง ์ธ ์ ์๋ ๋๊ตฌ๊ฐ ์๋๋ค. Jupyter๋ ์น ๋ธ๋ผ์ฐ์ ์์ ๋์๊ฐ๋ ์ธํฐํ๋ฆฌํฐ ์คํ์ผ(์ธํฐ๋ํฐ๋ธ)์ ๋ทฐ์ด์ ๊ฐ๊น๋ค. ํน์๋ ๋๋ด ๋ฐ ์ง๋ด ๋ฐ์ผ๋ก Jupyter๊ฐ Julia + Python + R์ ์ฝ์๋ฅผ ๋ฐ์ ๋ง๋ค์๋ค๊ณ ์ฃผ์ฅํ๊ธฐ๋ ํ๋ค. Jupyter๋ฅผ R๊ณผ ์ฐ์ง ๋ชปํ ์ด์ ๋ ์๋ค.
R์ด๋ Python์ด๋ ๊ฐ๋ณ๊ฒ ์ฐ๋ ค๋ฉด ๊ทธ๋ฅ ๋ญ๊ฐ ๋๋ฑ ๋๋ ๊ฒ์ด ์ข๋ค. Jupyter์ ๊ฐ์ฅ ํฐ ๋งค๋ ฅ์ ๋ณ๋์ ํด๋ผ์ด์ธํธ ์์ด ์น ๋ธ๋ผ์ฐ์ ์์ ๋์๊ฐ๋ค๋ ๊ฒ์ด๋ค. ํ์ด์ง ์ด๊ณ ๋ฆฌ์์ค๋ฅผ ํธ์ถํ ์ ์๋ url์ ์ฃผ์์ฐฝ์ ์น๋ฉด ๋์ด๋ค. ๊ฐ๋ฒผ์ด ์คํ ํ๊ฒฝ์ด ํ์ํ ๋ค๋ฅธ ๋๋ชฉ๋ ์๋ค. ๋ง์ผ ๋ก์ปฌ ๋ฐ์คํฌํ์ ๊ฐ๋ฐ ๋๊ตฌ๋ฅผ ์ค์นํ๋ ๋์ , AWS, DigitalOcean ํน์ ์ด์ฉ ์ค์ธ ์ฌ์ค ์๋ฒ์ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์นํ๋ค๊ณ ํด๋ณด์. ์ผ๋จ ์ค์น๊ฐ ๊ฐ๋ฒผ์์ผ ํ๋ค. ์ฉ๋์ด ํฌ๊ฑฐ๋ ์ค์น๊ฐ ๊น๋ค๋ก์ฐ๋ฉด ์ง์ ์ฅ๋ฒฝ์ด ๋์์ง๋ค. ์ผ์ข ์ ์๋ฒ ๋ฒ์ Jupyter์ธ JupterHub๊ฐ ์ผ๋จ ์ด ์ ์์ ๋งค์ฐ ๋ง์กฑ์ค๋ฝ๋ค.
๋ง์ผ ์คํ ํ๊ฒฝ๋ง ๋ฌธ์ ๋ผ๋ฉด RStudio ์ญ์ ์น๋ธ๋ผ์ฐ์ ์์ ๊ตฌ๋ ๋๋ ์๋ฒ ๋ฒ์ ์ธ RStudio Server๋ฅผ ์ ๊ณตํ๋ค. ์คํ ๋์ผ๋ก ๋ฒ์ ๊ณผ ๋์ผํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๋ถ์กฑํจ์ ์ ํ ์๋ค. ์๊ฒฉ์ผ๋ก ์์ ํ ๋ ๋ชจ๋ฐ์ผ์ ๋ฐ๋์ ๊ณ ๋ คํ ์ ๋ฐ์ ์๋ ์์๋ค. ๊ธํ๊ฒ ์ฝ๋๋ฅผ ์ค๋งํธํฐ, ํ๋ธ๋ฆฟ์ผ๋ก ๋ณด๊ฑฐ๋ ์์ ํด์ผ ํ๋ ์ํฉ์ด๋ผ๋ฉด? ๋ค์ํ ๊ธฐ๋ฅ์ ์ฌ๊ธฐ์ ์คํ๋ ค ๋ ์ด ๋๋ค.
์๋๋ก์ด๋์์๋ ๋ณ ๋ฌธ์ ๊ฐ ์์ง๋ง iOS์ ๊ฒฝ์ฐ OS์ ์ด์๋ก ์ธํด์ ์ธ๋ถ ํค๋ณด๋๋ก RStudio Server์ ์ ๊ทผํ ๊ฒฝ์ฐ ๋ฐฉํฅ ํค๊ฐ ๋จน์ง ์๋๋ค. ์์ ํ๋ฉด์ ์ ์ธํ๋๋ผ๋ ํธํ๊ฒ ์์ ํ๊ธฐ ํ๋ค๋ค. Jupyter์ ๊ฒฝ์ฐ iOS์์๋ ๊ฝค ์ธ๋งํ ์ฑ์ด ์๋ค. Juno๋ผ๋ ์ฑ์ ์ฃผํผํฐ ์๋ฒ์ iOS๋ฅผ ๋งค๋ํ๊ฒ ์ฐ๊ฒฐํด์ค๋ค. ์ธ๋ถ ํค๋ณด๋ ์์ ์๋ ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์๋ค.
R์์ rmd๋ผ๋ ํฌ๋งท์ ํตํด์ ์ฝ๊ฒ ์ฝ๋+๋ฌธ์ ํ๊ฒฝ์ ๊ตฌํํ ์ ์๋ค. R์ ๊ธฐ์ค์ผ๋ก ๋ดค์ ๋์๋ ํธ๋ฆฌํ๊ณ ๋ค์ํ ๊ฒ์ ๊ตฌํํ ์ ์๋ ๋๊ตฌ์ง๋ง, ๊ทธ ์์ฒด๋ก ๊ทธ๋ฆฌ ๊ฐ๋ณ์ง ์๋ค. Jupyter๋ ์ฝ๋์ markdown ํ๊ฒฝ์ ์์ ๋กญ๊ฒ ์ค๊ฐ ์ ์์ผ๋ฉด์๋ ๊ฐ๋ณ๊ณ ๊ฒฝ์พํ๋ค. ๋๋ฑ ๋ฌด์์ธ๊ฐ๋ฅผ ์๋ํ๊ธฐ์๋ Jupyter๊ฐ ๋ถ๋ด์ด ๋ํ๋ค. ๋ฌผ๋ก ๋ณธ๊ฒฉ์ ์ธ ๋ฌธ์๋ฅผ ๋ง๋ค๊ธฐ์๋ knitr์ด๋ผ๋ ๋ง๊ฐํ ํจํค์ง๋ฅผ ๊ฑฐ๋๋ฆฐ R์ด ๋ ํธํ๋ค!
์์ธ๋ฌ Jupyter notebook์ github์์ ๋ฌธ์ ๊ทธ๋๋ก ์ ๋ณด์ธ๋ค. ์ฆ, ํด๋น ์ฃผ์๋ฅผ ๊ทธ๋ฅ ๊ณต์ ํด๋ ์์ฌ์ํต์ ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์๋ค๋ ๋ป์ด๋ค. ์ด ์ ์ญ์ rmd ํฌ๋งท์ ๋นํด jupyter๊ฐ ์ง๋ ์ฅ์ ์ด๋ค.
๋จผ์ ์ด์ฉํ๋ ค๋ ๋จธ์ ์ Jupyter๊ฐ ๊น๋ ค ์๋ค๊ณ ์ ์ ํ๊ฒ ๋ค. Python์ ์ด์ฉํ๋ ํ๊ฒฝ์ด๋ผ๋ฉด ํฐ๋ฏธ๋์์ pip install
ํน์ conda install
๋ฑ์ ํ์ฉํด ์๋ง๊ฒ ์ธ์คํจํ๋๋ก ํ์. ์์ ์ธ๊ธํ๋ฏ์ด Jupyter๋ ์ธ์ด๋ฅผ ํ์ธ ์ ์๋ ์ผ์ข
์ ์ท๊ณผ ๊ฐ์ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ์ฌ๋ฆด ์ ์๋ ์ปค๋(์ธ์ด)๋ก R์ ์ธ์์์ผ์ค ์๋ง ์์ผ๋ฉด ๋๋ค. ์ด๋ฅผ ์ํด R์์ IRkernel ํจํค์ง๋ฅผ ์ค์นํ๊ณ installspec
์ ํ๋ฒ๋ง ์คํํ๋ฉด ๋๋ค.
devtools::install_github('IRkernel/IRkernel')
IRkernel::installspec()
์ด๋ ๊ฒ ํ๋ฉด Jupyter ํ๊ฒฝ์์ ์ ๊ทธ๋ฆผ์ฒ๋ผ R ์ปค๋์ ์ ํํ ์ ์๋ค. ์ด์ ์ปค๋์ ์ ํํ๊ณ RStudio์์ ์ฐ๋ฏ์ด R์ ์ฐ๋ฉด ๋๋ค.
์์ ๋ฌธ์: LINK
๐พJun Sok Huhh | ๐ [lostineonomics.com]