튜토리얼: 계산
이 튜토리얼은 R 또는 Python 코드 예제를 사용해 따라갈 수 있습니다. 선호하는 언어를 선택하세요.
R 예제를 보도록 선택했습니다. 안내서 전반에서 언제든지 Python으로 전환할 수 있습니다.
Python 예제를 보도록 선택했습니다. 안내서 전반에서 언제든지 R로 전환할 수 있습니다.
개요
Quarto는 마크다운 안에서 실행 가능한 코드 셀을 지원합니다. 이를 통해 완전히 재현 가능한 문서와 보고서를 만들 수 있습니다. 출력물을 만드는 데 필요한 코드는 문서 자체에 포함되며, 문서를 렌더링할 때마다 자동으로 다시 실행됩니다.
이 튜토리얼에서는 Positron에서 Quarto로 완전히 재현 가능한 계산 문서를 작성하는 방법을 배우게 됩니다.
다음 내용을 학습합니다:
- 콘솔에서 코드 셀을 대화형으로 실행하기
- 코드 출력 제어(코드 숨김 포함)
- 캡션과 레이아웃을 포함한 그림 출력 제어
- 새 코드 셀 추가 및 코드 셀 옵션 도움말 사용
- 코드 셀의 값을 마크다운 텍스트에 사용
설정
rmarkdown과tidyverse패키지가 설치되어 있는지 확인하세요.install.packages("rmarkdown") install.packages("tidyverse")아래의
computations.qmd를 다운로드하여 Positron에서 여세요.Quarto: Preview 명령을 실행하거나 단축키 를 사용하거나, 편집기 도구 모음의 Preview 버튼(
)을 사용해 문서를 렌더링하고 미리보기 하세요.


원하는 방법으로
jupyter와plotnine패키지를 설치하세요. 예를 들어pip를 사용하면 다음과 같습니다.pip install jupyter plotnine아래의
computations.qmd를 다운로드하여 Positron에서 여세요.Quarto: Preview 명령을 실행하거나 단축키 를 사용하거나, 편집기 도구 모음의 Preview 버튼(
)을 사용해 문서를 렌더링하고 미리보기 하세요.


셀 실행
문서를 작성하면서 전체 문서를 다시 렌더링하지 않고도 하나 이상의 코드 셀을 실행하고 싶을 때가 있습니다. 이때 코드 셀 위의 Run Cell 버튼을 사용할 수 있습니다. 버튼을 클릭하거나 Quarto: Run Cell 명령을 실행하거나 단축키 를 사용하면 현재 셀이 콘솔에서 실행됩니다.




단일 코드 셀 실행 외에도 다양한 명령과 단축키를 사용할 수 있습니다.
| Quarto 명령 | 키보드 단축키 |
|---|---|
| Run Cell | |
| Run Current Code | |
| Run Next Cell | |
| Run Previous Cell | |
| Run Cells Above | |
| Run Cells Below | |
| Run All Cells |
문서의 코드를 문제 해결할 때 좋은 방법은 콘솔을 재시작()한 다음 Quarto: Run All Cells()를 실행하는 것입니다. 이는 Quarto가 문서 코드를 실행하는 방식을 모방합니다. 즉, 깨끗한 세션에서 위에서 아래로 코드 셀을 실행합니다.
셀 출력
기본적으로 코드는 렌더링된 문서에 출력과 함께 표시됩니다.


그러나 어떤 문서에서는 코드를 모두 숨기고 출력만 보여주고 싶을 수 있습니다. 이를 위해 문서 헤더에 echo: false를 지정하세요.
---
title: Quarto Computations
echo: false
---다시 미리보기를 실행해 변경 사항을 확인하세요. 결과는 다음과 같이 보입니다.

일부 셀에서만 코드 echo를 선택적으로 활성화하고 싶을 수도 있습니다. 이 경우 코드 셀에 echo: true 옵션을 추가합니다. scatterplot 레이블이 있는 셀로 실습해 보세요.
#| label: scatterplot
#| echo: true
ggplot(mpg, aes(x = hwy, y = cty, color = cyl)) +
geom_point(alpha = 0.5, size = 2) +
scale_color_viridis_c() +
theme_bw()#| label: scatterplot
#| echo: true
(
ggplot(mpg, aes(x="hwy", y="cty", color="cyl"))
+ geom_point(alpha=0.5, size=2)
+ scale_color_continuous()
+ theme_bw()
)문서를 다시 미리보고 scatterplot 셀에 코드가 포함되는지 확인하세요.


echo 옵션은 소스 코드 자체가 렌더링된 문서에 표시되는지 여부를 제어합니다. 다른 옵션들은 코드 셀의 다른 측면 표시를 제어합니다. echo와 마찬가지로 문서 헤더에서 설정하거나 코드 셀에서 재정의할 수 있습니다.
output: 코드의 출력(그림, 표, 텍스트 출력 등)을 표시 (기본값true)warning: 코드에서 생성된 경고 표시 (기본값true)include: 코드 자체, 출력, 경고 등 모든 것을 포함하는 포괄 옵션 (기본값true)eval: 코드를 실행할지 여부 (기본값true)error: 오류 발생 후 실행을 계속하고 오류를 표시할지 여부 (기본값false)
이 옵션들에 대한 자세한 내용은 실행 옵션을 참고하세요.
코드 모양
문서에서 코드의 모양을 조정하는 옵션이 많이 있습니다. 예를 들어 코드를 표시하거나 숨기는 대신 코드 접기를 사용할 수 있습니다.
#| label: scatterplot
#| echo: true
#| code-fold: true
ggplot(mpg, aes(x = hwy, y = cty, color = cyl)) +
geom_point(alpha = 0.5, size = 2) +
scale_color_viridis_c() +
theme_bw()#| label: scatterplot
#| echo: true
#| code-fold: true
(
ggplot(mpg, aes(x="hwy", y="cty", color="cyl"))
+ geom_point(alpha=0.5, size=2)
+ scale_color_continuous()
+ theme_bw()
)렌더링된 문서에서는 코드 셀이 접힌 “Code” 버튼 아래에 표시되며, 독자는 필요에 따라 펼쳐 볼 수 있습니다.

또 다른 예로 code-line-numbers를 사용해 코드 셀에 줄 번호를 추가할 수 있습니다.
#| label: scatterplot
#| echo: true
#| code-fold: true
#| code-line-numbers: true
ggplot(mpg, aes(x = hwy, y = cty, color = cyl)) +
geom_point(alpha = 0.5, size = 2) +
scale_color_viridis_c() +
theme_bw()#| label: scatterplot
#| echo: true
#| code-fold: true
#| code-line-numbers: true
(
ggplot(mpg, aes(x="hwy", y="cty", color="cyl"))
+ geom_point(alpha=0.5, size=2)
+ scale_color_continuous()
+ theme_bw()
)

코드 셀에 사용할 수 있는 옵션은 코드를 실행하는 엔진에 따라 달라집니다. Quarto가 엔진을 선택하는 방식은 엔진 바인딩 문서에서 확인할 수 있습니다.
이 튜토리얼을 R로 따라왔다면 knitr 엔진을 사용하고 있는 것입니다. 사용 가능한 코드 셀 옵션의 전체 목록은 Knitr 셀 옵션 문서를 참고하세요.
이 튜토리얼을 Python으로 따라왔다면 jupyter 엔진을 사용하고 있는 것입니다. 사용 가능한 코드 셀 옵션의 전체 목록은 Jupyter 셀 옵션 문서를 참고하세요.
많은 코드 셀 옵션은 문서 헤더에 설정하여 모든 코드 셀에 적용할 수도 있습니다. 예를 들어 문서 헤더에 code-fold 옵션을 추가하면 모든 코드 셀을 접을 수 있습니다.
---
title: "Quarto Computations"
format:
html:
code-fold: true
---문서 헤더에 설정할 수 있는 옵션은 사용 중인 형식의 참조 문서를 확인하세요. 예를 들어 code-fold는 HTML 형식 옵션에 나열되어 있으므로 문서 헤더에 설정할 수 있습니다. 다음 튜토리얼인 저작에서, 형식 아래에 중첩해 설정할지 최상위에 설정할지에 대해 더 자세히 다룹니다.
HTML 형식에서 코드 모양을 제어하는 다른 옵션 예시는 안내 페이지 HTML 코드 블록에서 확인할 수 있습니다.
그림
코드 셀에서 생성된 그림은 렌더링된 출력에 자동으로 포함됩니다. 코드 셀 옵션을 통해 그림 표시 방법을 추가로 제어할 수 있습니다.
예를 들어 fig-cap으로 캡션을 추가하고, 대체 텍스트를 fig-alt로 추가해 접근성을 개선할 수 있습니다.
#| fig-cap: City and highway mileage for 38 popular models of cars.
#| fig-alt: Scatterplot of city vs. highway mileage for cars, where points are colored by the number of cylinders. The plot displays a positive, linear, and strong relationship between city and highway mileage, and mileage increases as the number of cylinders decreases.그림을 상호 참조하려면 label을 fig-로 시작하는 값으로 바꾸세요.
#| label: fig-scatterplot그다음 내러티브를 업데이트해 레이블을 사용해 그림을 참조할 수 있습니다.
@fig-scatterplot shows a positive, strong, and linear relationship between the city and highway mileage of these cars.문서를 미리보면 플롯에 캡션과 자동 생성된 번호가 붙고, 텍스트에서 해당 번호로 링크되는 것을 확인할 수 있습니다.




문서 헤더에 인치 단위의 fig-width와 fig-height를 설정하여 모든 그림 크기를 제어할 수 있습니다.
---
title: Quarto Computations
echo: false
fig-height: 3.5
fig-width: 6
---개별 그림의 크기를 재정의하려면 fig-width와 fig-height를 코드 셀 옵션으로 사용합니다.
#| label: fig-scatterplot
#| fig-width: 6
#| fig-height: 3.5
ggplot(mpg, aes(x = hwy, y = cty, color = cyl)) +
geom_point(alpha = 0.5, size = 2) +
scale_color_viridis_c() +
theme_bw()개별 그림 크기를 재정의하려면 코드에서 플롯 크기를 지정합니다. 예를 들어 plotnine에서는 theme()의 figure_size 인자를 사용할 수 있습니다.
(
ggplot(mpg, aes(x="hwy", y="cty", color="cyl"))
+ geom_point(alpha=0.5, size=2)
+ scale_color_continuous()
+ theme_bw()
+ theme(figure_size=(6, 3.5))
)Quarto는 그림에 대해 추가적인 유연성을 제공합니다. 다음 작업을 할 수 있습니다:
셀 워크플로
새 코드 셀을 추가하려면 Quarto: Insert Code Cell 명령을 실행하거나 단축키 를 사용하거나 편집기 도구 모음의 Insert Code Cell 버튼을 사용하세요.
.qmd 문서는 일반 텍스트이므로 코드 셀 구문을 입력(또는 복사/붙여넣기)하여 새 코드 셀을 만들 수도 있습니다.
```{r}
``````{python}
```이제 산점도 셀 뒤에 새 코드 셀을 추가해 보세요.
코드 셀 옵션 도움말을 보려면 코드 셀 옵션 주석(#|)을 먼저 입력한 다음 를 눌러 자동완성 목록을 띄우세요. 계속 입력해 목록을 필터링하거나 화살표 키로 이동할 수 있습니다. 원하는 옵션을 찾으면 를 눌러 코드 셀에 삽입합니다.




이를 연습해 코드 셀에 echo: true와 label: nobs를 추가하세요.
마지막으로 셀에 코드를 추가합니다.
nrow(mpg)len(mpg)문서를 다시 미리보면 코드 셀의 출력이 표시됩니다. 이는 관측치 수를 표시하는 아주 예쁜 방법은 아닙니다. 대신 다음으로 배울 인라인 코드를 사용할 수 있습니다.
```{language} 구문을 사용하는 코드 셀은 계산 엔진(예: knitr, jupyter)이 실행하므로 실행 가능한 코드 셀이라고 부르기도 합니다.
계산 엔진에서 처리하지 않고 코드를 보여주고 싶다면 코드 블록을 사용하세요.
```r
# Code goes here
``````python
# Code goes here
```자세한 내용과 구문 대안은 마크다운 기초: 소스 코드에서 확인할 수 있습니다.
인라인 코드
마크다운 텍스트 안에 실행 가능한 표현식을 넣으려면 `{r} `로 표현식을 감싸세요.1.
마크다운 안에 실행 가능한 표현식을 넣으려면 `{python} `로 표현식을 감싸세요.
예를 들어 인라인 코드를 사용해 데이터의 관측치 수를 설명할 수 있습니다. 다음 마크다운 텍스트를 Quarto 문서에 추가해 보세요.
There are `{r} nrow(mpg)` observations in our data.There are `{python} len(mpg)` observations in our data.문서를 저장하고 렌더링된 결과를 확인하세요. 백틱 안의 표현식이 실행되어 문장에 실제 관측치 수가 포함됩니다.
데이터에는 234개의 관측치가 있습니다.
이제 같은 계산을 하던 코드 셀은 삭제해도 됩니다. 인라인 코드 표현식으로 대체되었기 때문입니다.
인라인으로 넣고 싶은 표현식이 복잡하거나 여러 함수/파이프라인을 포함한다면, echo: false로 설정한 코드 셀에서 계산하고 결과를 객체에 저장하는 것을 권장합니다. 그런 다음 인라인 코드에서 그 객체를 호출하세요.
인라인 코드 표현식에 대한 자세한 내용은 인라인 코드 문서를 참고하세요.
최종 문서
이 튜토리얼을 단계별로 따라 했다면 이제 우리가 다룬 모든 내용을 구현한 Quarto 문서를 갖게 되었을 것입니다. 그렇지 않다면 아래에서 computations.qmd의 완료 버전을 다운로드할 수 있습니다.
다음 단계
이제 Quarto 문서에서 실행 가능한 코드의 동작과 출력을 사용자화하는 기본을 살펴보았습니다.
다음으로는 튜토리얼: 작성을 확인하여 출력 형식과 인용, 상호 참조, 고급 레이아웃 같은 기술 문서 작성 기능을 더 알아보세요.
VS Code
Jupyter
RStudio
에디터