R4CR

Day3 - quarto | 2023-09-01
Jinhwan Kim

Overview

  • 개요
  • markdown
  • qmd
  • yaml
  • r code
  • publish

System Publish

  1. 연구의 중요 특징: 재현가능성
    • 같은 데이터 + 같은 프로세스 -> 같은 결과
  2. (의료) 분석 -> 통계 분석 방법론(process)을 데이터(input)만 다른 “시스템 적용”

이런 코드로, 이런 작업을 해서 이런 결과가 나왔습니다.

를 잘 공유하는 것이 목적

준비

Fork https://github.com/zarathucorp/R4CR_day3

Posit cloud에서 New project with own github repository 실행

install.R 실행 (패키지 설치)

Render in Viewer로 설정

Markdown

구조화된 텍스트

  • 쉬운 문법 (노션과 비슷)
  • 가벼움 (설치)
  • 호환이 잘 됨

실습

Rmarkdown & Quarto

Rmarkdown

Rstudio에서 Rmarkdown을 저작할 수 있게 하는 패키지

  • HTML, PDF, MS Word
  • HTML Slide, Book, Dashboard,
  • Scientific article, Website 등으로 확장 가능

  • 수많은 패키지들이 양산되어 각 기능을 전부 따로 학습해야 함

  • 통일의 필요성이 제시됨: -> Quarto (Rstudio)

Quarto

  • Rmarkdown의 대부분 기능들이 quarto에서 지원됨 (아직 안되는 것도 있음)
  • 수시로 버전이 업데이트 되며 바뀜

학습 목표

  • .qmd
  • YAML
  • Code options
  • Example

qmd

  1. File -> New File -> Quarto Document (hello.qmd)
  2. Title, Author… 메타데이터 는 수정 가능.
  3. “Source” 선택

Source / Visual 보이는 것이 살짝 다름

qmd의 구성

  1. YAML (1:5, - - -로 구분)
  2. R Code (7:13, 27:43, ```로 구분)
  3. Markdown (15:25)
  • Markdown이 어떤 내용인지 생각해보자.

Render qmd

Ctrl + Shift + K (Knit) 혹은 Rstudio의 상단에서 Render

별도 설정을 하지 않았다면, posit cloud에서는 새창팝업으로 띄워줌

YAML

  • YAML Header에서 아래 정도만 수정해도 충분
Key Value
title 문서 제목
date 작성날짜
author 작성자
abstract 문서요약
toc 목차
toc-depth 목차단계
toc-location 목차위치
lang 언어
keywords 키워드
license 라이센스

YAML 실습

  • penguin에
  • Subtitle: R4CR Quarto 실습
  • Author: 이름/닉네임
  • Categories: [ Quarto, palmerpenguins, R ]
  • Toc: 오른쪽에 추가
  • date: 오늘 날짜로 추가

HINT date: last-modified

YAML 실습 solution

hello_solution.qmd

---
title: "Hello, Quarto"
subtitle: 'R4CR Quarto 실습'
author: jhk0530
categories: [Quarto, palmerpenguins, R]
toc: true
toc-location: right
date: last-modified
format: html
---

R 코드

  • R 코드와 실행결과를 qmd에 작성할 수 있음

  • ```{r} ~ ```로 감싸서 표현

  • #| eval: false 와 같이 R chunk에 대한 옵션 설정 (hello.qmd / code chunk)

  • ` r 1+1 `번 계산” 처럼 Markdown과 R을 섞어 쓰는 것도 가능 (인라인, hello.qmd / inline code)

주요 R chunk options

Key Value
eval 코드 실행
echo 실행 코드를 출력
output 실행 결과 출력
warning 실행과정의 warning
cache 실행결과 캐싱
freeze 실행 결과 분리
fig-* 피규어 옵션들

R 코드 - table

  • 데이터를 테이블로 보여줄 때 그대로 보여주면 이상해짐.
head(iris)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa

직접 qmd에 작성 후 render 해보자.(각 패키지 설치 필요)

  • kable
knitr::kable(head(iris))
  • reactable
reactable::reactable(head(iris))
  • DT
DT::datatable(head(iris))

Quarto document 공유 (using github)

  • render한 html을 웹에 올려서 주소를 안다면 누구나 볼 수 있게 하는 것이 목적.

  • publish 기능으로 rpubs에 공유 하는 방법도 있지만 다루진 않음 (전세계 모두에게 공개)

  1. github에 repo 생성
  2. clone
  3. _quarto.yml 파일 생성
  4. qmd 파일 작성 / 옮겨넣기 및 render
  5. github repo에서 page 설정 (Commit 포함)

Quarto document 공유 1

Quarto document 공유 2

  • 이후 document/github/quarto-practice 디렉토리 확인

Quarto document 공유 3

_quarto.yml의 내용은 아래처럼 github repo의 /docs라는 폴더에 만들겠다는 뜻이고 다른 이름 (site)도 무관

project:
  type: website
  output-dir: docs

Quarto document 공유 4

  • 아까 작성한 penguins.qmd 이동
  • 이름을 index.qmd으로 변경
  • 이후 render

Quarto document 공유 5

  • 몇분 지나 새로고침 하면 아래 이미지처럼 주소가 나타남.

Web에서 결과 확인

정리

  • quarto는 R 분석 코드와 결과를 같이 공유할 수 있는 방법
  • YAML, Markdown, R로 구성
  • 이번 강의에서는 분석 리포트를 html로 만들어 으로 공유하는 방법을 다룸.