R 에서 Rmd를 호출 하자(rendering)

미완성의 신
4 min readNov 15, 2019

--

목차

Daily Report Project — 기획

Daily_report에서 매일같이 rmd를 실행 하려고 할때 파일명은 매우 중요하다. Rmd로 html 혹은 pdf 파일을 만들었을때 파일 명은 Rmd과 동일하기때문에 매일 어제,오늘 돌아간 html 파일은 계속 덮어 씌워지게 된다.

그럼? rmd를 실행할때 파일명을 달리 할 수 있는 방법이 없을까?

라는 생각에 찾아 보니 render 함수를 알게 되었다. R에서 Rmd를 호출 하고 생성된 파일명과 경로도 컨트롤 할 수 있는 좋은 기능이다.

그럼 코드와 함께 한번 render함수에 대해 알아보자.

시스템 경로 설정

Sys.setenv()함수를 사용해서 pandoc를 사용할 환경 변수를 설정 해주자.

Sys.setenv(RSTUDIO_PANDOC=”/usr/lib/rstudio-server/bin/pandoc”)

rmarkdown 라이브러리 호출

render함수는 rmarkdown패키지에서 사용이 가능하다.

library(rmarkdown)

render()

render 함수를 사용해보자. 여러 옵션이 있지만 필요한건 다음과 같다.

  • 실행할 rmd 파일 이름
  • output_file : rmd로 생성한 html 파일의 이름
  • output_dir : 생성된 html 파일의 저장 경로 (이때 되도록이면 절대경로를 사용한다.)
render(“/home/owen/daily_report/daily_report.Rmd”,
output_file = "html_name.html",
output_dir = “/home/owen/daily_report/htmlfile”)

이렇게 간단히 render에 대해 알아보았고 자세한거는 다음의 Rstudio Blog 출처를 남기도록 하겠다.
출처: https://rmarkdown.rstudio.com/authoring_quick_tour.html

Daily_report에서의 응용

이제 Daily_report에 응용을 해보자.

  • 기본적으로 분석할 rmd 파일은 만들었으며 daily_report.Rmd 라고 이름을 지어주었다.
  • 생성될 html 이름은 “report_”와 그날의 날짜를 합쳐서 만들기로 했다.
    예) report_2019_11_15 17:04:58.html
  • html이 들어갈 경로는 htmlfile이라는 폴더를 미리 만들어 두었다.

최종적으로 daily_report.R에 들어가는 코드는 다음과 같다.

Sys.setenv(RSTUDIO_PANDOC=”/usr/lib/rstudio-server/bin/pandoc”)library(rmarkdown)html_link <- paste0(“report_”,gsub(“-”,”_”,Sys.time()),”.html”)render(“/home/owen/daily_report/daily_report.Rmd”,
output_file = html_link,
output_dir = “/home/owen/daily_report/htmlfile”)

이제 터미널에서 Rscript daily_report.R이라는 명령어로 스크립트를 실행을 해보자.

daily_report.R 이 daily_report.Rmd를 호출해 실행하는 부분

결과는?

이렇게 날짜와 시간으로 구분된 html 파일이 생겼다.

나름 daily_report라는 naming을 주고 첫 블로그를 써보았다. 아직 써야 할게 한참 많기도 하고, 이 블로그를 본 모두가 따라서 구현을 할 수 있게 하려면 구석구석 최대한 디테일하게 쓰도록 신경 써야 겠다.

--

--

미완성의 신

우리 인간은 미완성의 신들이다. 뛰어난 데이터 과학자를 꿈꾸는. 책을 좋아하는. 그런 사람입니다.