1 R마크다운 파이썬 환경설정 1

R마크다운으로 파이썬 객체지향 프로그래밍 내용을 정리할 예정이라 reticulate 팩키지를 설치하고, anaconda3도 설치한다. 아나콘다 내부에 파이썬이 들어있어 Anaconda 2018.12 for Windows Installer 웹사이트에서 다운로드 받아 설치한다.

아나콘다를 설치한 경우 환경설정도 함께 진행한다. 제어판시스템 및 보안시스템으로 이동해서 “고급 시스템 설정”으로 들어가서 환경변수(N)…로 들어간다. 환경변수에 다음 사항을 추가시킨다. 단, 사용자명에 본인 컴퓨터 사용자 계정을 지정한다.

  • C:\Users\사용자명\Anaconda3\Library\bin
  • C:\Users\사용자명\Anaconda3
  • C:\Users\사용자명\Anaconda3\Scripts
library(reticulate)
use_condaenv("anaconda3")

1.1 아나콘다 설치 확인

맥OS를 포함한 유닉스 계열 which python 명령어, 윈도우는 where python 명령어를 실행시키게 되면 불러다 사용할 python 프로그램을 확인할 수 있다.

which python
/usr/bin/python

1.2 경로명 추가

echo $HOME 명령어를 사용해서 사용자 홈 위치를 파악한다. 이것을 파악해야 하는 이유는 anaconda3 설치경로를 확정지어야 하기 때문이다.

echo $HOME
/Users/statkclee

이제 anaconda3에 설치된 프로그램을 모두 이용하려면 다음과 같이 .bash_profile에 경로명을 추가하여 쉘에서 참조하여 사용할 수 있도록 준비한다.

export PATH="$HOME/anaconda3/bin:$PATH"

pip와 더불어 대표적인 팩키지 관리자인 conda도 확인한다.

which conda
/Users/statkclee/anaconda3/bin/conda

2 헬로 파이썬

R 코드 덩어리(chunk)에 “{python}" 으로 시작해서 파이썬 코드를 작성하고 "”으로 마무리하여 파이썬 코드를 작성한다. 간단한 for 루프를 작서하여 리스트에 담긴 원소를 하나씩 출력하는 파이썬 코드를 작성한다.

print("헬로 파이썬!!!")
헬로 파이썬!!!
languages = ['R', '파이썬', 'C/C++', '자바', '루비']

for language in languages:
    print("프로그래밍 언어:", language)
프로그래밍 언어: R
프로그래밍 언어: 파이썬
프로그래밍 언어: C/C++
프로그래밍 언어: 자바
프로그래밍 언어: 루비

3 인터랙티브 파이썬

reticulate::repl_python() 명령어를 R 콘솔에서 타이핑하게 되면 > 프롬프트가 >>>으로 변경되어 파이썬 코드를 컨트롤+엔터(CTRL+Enter)키를 입력하게 되면 RStudio IDE에서 파이썬 코드 개발작업을 수행할 수 있다.

reticulate::repl_python()

4 파이썬 파일 실행 2

비만 기준 ’골드 스탠더드(gold standard)’로 체질량지수(BMI, Body Mass Index)를 많이 사용한다. 체중을 신장의 제곱으로 나눈값으로 BMI를 계산한다.

\[\text{체질량 지수} = \frac{체중}{신장^2}\]

대한민국 남성 평균키와 평균체중은 얼마나 될까 이를 파이썬 프로그램으로 작성하여 계산해 보자. 2015년 8월 뉴스원 기사에 따르면 170.5cm, 70.9㎏가 2013년 기준 평균이다. 약 24 정도 나온다. 아래 BMI 참조표를 보면 표준체형에서 비만으로 넘어가기 직전 모습이 된다.

  • BMI < 18.5: “마른 체형”
  • 18.5 <= BMI < 25: “표준 체형”
  • 25 <= BMI < 30: “비만”
  • BMI >= 30: “고도비만”

이를 바탕으로 BMI를 R로 먼저 계산해보자

`` <- 170.5 * 0.01 
`몸무게` <- 70.9
bmi <-  `몸무게` / ``**2
cat("대한민국 남성 BMI (2013년): ", bmi)
대한민국 남성 BMI (2013년):  24.3892

reticulate 팩키지 source_python() 함수를 사용해서 BMI를 계산하는 파이썬 코드를 실행시킬 수 있다.

bmi.py 파일에 BMI를 계산하는 파이썬 코드를 작성한다.

## bmi.py
# BMI 계산
height = 170.5 * 0.01 
weight = 70.9
bmi = weight / height ** 2
print("BMI:", bmi)
reticulate::source_python("code/bmi_function.py")

두번째는 calc_bmi() 함수를 작성하여 신장과 몸무게를 넣어 BMI를 계산하도록 파이썬 코드를 수정한다.

## bmi_function.py
# BMI 계산
def calc_bmi(height = 170.5, weight=70.9):
    height = height * 0.01 
    weight = weight
    bmi = weight / height ** 2
    print("BMI:", bmi)

# calc_bmi(height = 170.5, weight=70.9)

동일한 방식으로 source_python() 실행을 하지만 calc_bmi() 함수를 R 환경에서 불러 작업할 수 있는 장점이 있다.

reticulate::source_python("code/bmi_function.py")
calc_bmi(height = 170.5, weight=70.9)

  1. [Pablo Franco, @jpablofranco(15 June, 2018), "Mix’n Mingling R and Python with Reticulate"](https://rpubs.com/jpfranco123/reticulate)↩︎

  2. 식품안전나라, BMI계산기↩︎