Quartoの使い方

Soichi Matsuura

2024-11-13

Rmarkdown / Quarto

動的レポーティング

  • 本資料を作成しているQuartoというツールです。Quartoのダウンロードはこちら
  • Quarto(クゥアルト)は、Markdown + R/Python/Juliaで動的レポーティングを行うためのツールです。
  • Markdownで記述された文書に、R/Python/Juliaのコードを埋め込むことができます。
  • MS Wordで作文して、MS Excelでデータを処理して、またMS Wordに貼り付ける、という作業を一つのファイルで完結できます。

ぜひ使ってみてください。

準備

  • Rをインストールする。
  • RStudio / VS Codeをインストールする。
  • Quartoをインストールする。

すべて無料かつオープンソースです。VS CodeはMicrosoft、RstudioとQuartoはPosit社が開発しています。

使い方

  • Rstudioだと、左上の緑のプラスボタンから「Quarto Document」や「Quarto Presentaion」を選択すると、ファイルが作成されます。
  • 拡張子は.qmdとなります。

Quartoファイル.qmdの構造

  1. YAMLヘッダー
  2. Markdown文書

YAMLヘッダー

ここは文章の構造(メタデータ)を記述する場所です。

  • author : 著者名
  • format : フォーマットの指定
    • html : ウェブサイト作成
    • docx : Word作成
    • pdf : PDF作成 (LaTeXが必要)
    • revealjs : スライド作成

スライドを作るには、

  • formatrevealjsを指定します。
  • themeでテーマを指定します。たとえば次のようなもの
    • blood
    • dark
    • night
    • simple
    • sky
    • solarized

Markdown文書

Markdown記法で書かれた文章を,様々なフォーマットへと変換することができます。

  • ###### : 1〜3レベルの見出し
  • *- : 箇条書き
  • 1. : 番号付き箇条書き
  • **__ : 太字
  • *_ : 斜体
  • ` : インラインコード

チャンク

  • チャンクはコードブロックを指し,ここにR/Python/Juliaのコードを記述します。
  • Rだと「```{r}```」で囲まれた部分です。
これがRチャンクです。

::: {.cell}
::: {.cell-output-display}
![](gaisho_2024_06_quarto_files/figure-revealjs/unnamed-chunk-1-1.png){width=960}
:::
:::

最小限の設定

---
title: "タイトルとは"
author: "ちょしゃ"
format: html
---

# 第1章:はじめに

## はじめに

- a
- b
- c

サンプル

Rを組み込む

データの読み込み

MASSパッケージに含まれるBostonデータを読み込みます。

     crim zn indus chas   nox    rm  age    dis rad tax ptratio  black lstat
1 0.00632 18  2.31    0 0.538 6.575 65.2 4.0900   1 296    15.3 396.90  4.98
2 0.02731  0  7.07    0 0.469 6.421 78.9 4.9671   2 242    17.8 396.90  9.14
3 0.02729  0  7.07    0 0.469 7.185 61.1 4.9671   2 242    17.8 392.83  4.03
4 0.03237  0  2.18    0 0.458 6.998 45.8 6.0622   3 222    18.7 394.63  2.94
5 0.06905  0  2.18    0 0.458 7.147 54.2 6.0622   3 222    18.7 396.90  5.33
6 0.02985  0  2.18    0 0.458 6.430 58.7 6.0622   3 222    18.7 394.12  5.21
  medv
1 24.0
2 21.6
3 34.7
4 33.4
5 36.2
6 28.7

Bostonデータの説明

  • crim : 犯罪率
  • zn: 広い家の割合
  • indus: 非小売業の割合
  • chas: 川に近接(1:yes, 0:no)
  • nox: 一酸化窒素濃度
  • rm: 平均部屋数
  • age: 古い家の割合
  • dis: 主要施設への距離
  • rad: 主要高速道路へのアクセス性
  • tax: 固定資産税率
  • ptratio: 生徒先生の比率
  • black: 黒人の割合
  • lstat: 低所得者割合
  • medv: 住宅価格

記述統計量

      crim                zn             indus            chas        
 Min.   : 0.00632   Min.   :  0.00   Min.   : 0.46   Min.   :0.00000  
 1st Qu.: 0.08205   1st Qu.:  0.00   1st Qu.: 5.19   1st Qu.:0.00000  
 Median : 0.25651   Median :  0.00   Median : 9.69   Median :0.00000  
 Mean   : 3.61352   Mean   : 11.36   Mean   :11.14   Mean   :0.06917  
 3rd Qu.: 3.67708   3rd Qu.: 12.50   3rd Qu.:18.10   3rd Qu.:0.00000  
 Max.   :88.97620   Max.   :100.00   Max.   :27.74   Max.   :1.00000  
      nox               rm             age              dis        
 Min.   :0.3850   Min.   :3.561   Min.   :  2.90   Min.   : 1.130  
 1st Qu.:0.4490   1st Qu.:5.886   1st Qu.: 45.02   1st Qu.: 2.100  
 Median :0.5380   Median :6.208   Median : 77.50   Median : 3.207  
 Mean   :0.5547   Mean   :6.285   Mean   : 68.57   Mean   : 3.795  
 3rd Qu.:0.6240   3rd Qu.:6.623   3rd Qu.: 94.08   3rd Qu.: 5.188  
 Max.   :0.8710   Max.   :8.780   Max.   :100.00   Max.   :12.127  
      rad              tax           ptratio          black       
 Min.   : 1.000   Min.   :187.0   Min.   :12.60   Min.   :  0.32  
 1st Qu.: 4.000   1st Qu.:279.0   1st Qu.:17.40   1st Qu.:375.38  
 Median : 5.000   Median :330.0   Median :19.05   Median :391.44  
 Mean   : 9.549   Mean   :408.2   Mean   :18.46   Mean   :356.67  
 3rd Qu.:24.000   3rd Qu.:666.0   3rd Qu.:20.20   3rd Qu.:396.23  
 Max.   :24.000   Max.   :711.0   Max.   :22.00   Max.   :396.90  
     lstat            medv      
 Min.   : 1.73   Min.   : 5.00  
 1st Qu.: 6.95   1st Qu.:17.02  
 Median :11.36   Median :21.20  
 Mean   :12.65   Mean   :22.53  
 3rd Qu.:16.95   3rd Qu.:25.00  
 Max.   :37.97   Max.   :50.00  

もっとキレイな記述統計量の表

skim_type skim_variable n_missing complete_rate numeric.mean numeric.sd numeric.p0 numeric.p25 numeric.p50 numeric.p75 numeric.p100 numeric.hist
numeric crim 0 1 3.6135236 8.6015451 0.00632 0.082045 0.25651 3.677083 88.9762 ▇▁▁▁▁
numeric zn 0 1 11.3636364 23.3224530 0.00000 0.000000 0.00000 12.500000 100.0000 ▇▁▁▁▁
numeric indus 0 1 11.1367787 6.8603529 0.46000 5.190000 9.69000 18.100000 27.7400 ▇▆▁▇▁
numeric chas 0 1 0.0691700 0.2539940 0.00000 0.000000 0.00000 0.000000 1.0000 ▇▁▁▁▁
numeric nox 0 1 0.5546951 0.1158777 0.38500 0.449000 0.53800 0.624000 0.8710 ▇▇▆▅▁
numeric rm 0 1 6.2846344 0.7026171 3.56100 5.885500 6.20850 6.623500 8.7800 ▁▂▇▂▁
numeric age 0 1 68.5749012 28.1488614 2.90000 45.025000 77.50000 94.075000 100.0000 ▂▂▂▃▇
numeric dis 0 1 3.7950427 2.1057101 1.12960 2.100175 3.20745 5.188425 12.1265 ▇▅▂▁▁
numeric rad 0 1 9.5494071 8.7072594 1.00000 4.000000 5.00000 24.000000 24.0000 ▇▂▁▁▃
numeric tax 0 1 408.2371542 168.5371161 187.00000 279.000000 330.00000 666.000000 711.0000 ▇▇▃▁▇
numeric ptratio 0 1 18.4555336 2.1649455 12.60000 17.400000 19.05000 20.200000 22.0000 ▁▃▅▅▇
numeric black 0 1 356.6740316 91.2948644 0.32000 375.377500 391.44000 396.225000 396.9000 ▁▁▁▁▇
numeric lstat 0 1 12.6530632 7.1410615 1.73000 6.950000 11.36000 16.955000 37.9700 ▇▇▅▂▁
numeric medv 0 1 22.5328063 9.1971041 5.00000 17.025000 21.20000 25.000000 50.0000 ▂▇▅▁▁

データの可視化:ヒストグラム

データの可視化

犯罪率と住宅価格の散布図

住宅価格を様々な変数で回帰

tinytable_tyynlr6tz0erux5bctfj
model1 model2 model3 model4
+ p < 0.1, * p < 0.05, ** p < 0.01, *** p < 0.001
(Intercept) 24.033*** -29.245*** -28.811*** -22.457***
(0.409) (2.588) (2.563) (2.736)
crim -0.415*** -0.265*** -0.261*** -0.200***
(0.044) (0.033) (0.033) (0.034)
rm 8.391*** 8.278*** 7.857***
(0.405) (0.402) (0.397)
chas 3.763*** 4.541***
(1.086) (1.064)
age -0.058***
(0.010)
Num.Obs. 506 506 506 506
R2 0.151 0.542 0.553 0.579
R2 Adj. 0.149 0.540 0.550 0.576
F 89.486 297.578 206.725 172.213
RMSE 8.47 6.22 6.15 5.96