11  การใช้งาน Quarto และการตั้งค่าระบบประมวลผล

Modified

April 29, 2026

Keywords

Python for Economics, Computational Economics, Applied Econometrics, Python สำหรับเศรษฐศาสตร์, เศรษฐศาสตร์คำนวณ, เศรษฐมิติเชิงประยุกต์

Quarto คือระบบเผยแพร่ผลงานทางวิทยาศาสตร์ที่ช่วยให้เราสามารถผนวก เนื้อหา (Narrative) และ โค้ด (Code) เข้าไว้ด้วยกัน เพื่อสร้างงานวิจัยที่ทำซ้ำได้ (Reproducible Research)

11.1 โครงสร้างพื้นฐานของไฟล์ Quarto (.qmd)

ไฟล์ Quarto ประกอบด้วย 3 ส่วนหลัก:

  1. YAML Metadata: อยู่ส่วนบนสุด ใช้ควบคุมการแสดงผล (เช่น format, title, author)

  2. Narrative: เนื้อหาบรรยายที่ใช้รูปแบบ Markdown

  3. Code Chunks: พื้นที่สำหรับเขียนโค้ด Python เพื่อประมวลผลข้อมูล

11.2 ความรู้พื้นฐานเกี่ยวกับ YAML (YAML Essentials)

YAML (YAML Ain’t Markup Language) คือส่วนที่อยู่บนสุดของไฟล์ Quarto (.qmd) ทำหน้าที่เป็น “ศูนย์บัญชาการ” เพื่อกำหนดค่าพารามิเตอร์ของเอกสาร โดยผลลัพธ์ที่หนังสือเล่มนี้ให้ความสำคัญคือ HTML สำหรับการนำเสนอผ่านเวบไซต์หรืออินเทอร์เน๊ต และ DOCX สำหรับการจัดทำรายงานที่สามารถแก้ไขเพิ่มเติมได้ภายหลัง

11.2.1 โครงสร้างและกฎเหล็กของ YAML

เพื่อให้ระบบ Render ผลงานออกมาเป็น HTML หรือ Word ได้อย่างถูกต้อง นักศึกษาต้องปฏิบัติตามกฎ 3 ข้อ:

  1. ล้อมรอบด้วยขีด 3 ขีด (---): ข้อมูล YAML ต้องอยู่ระหว่าง --- บนและล่างเสมอ

  2. Key: Value: ต้องมีช่องว่างหลังเครื่องหมาย : เสมอ เช่น title: "รายงานเศรษฐกิจ" (ห้ามเขียนติดกัน)

  3. การย่อหน้า (Indentation): ใช้เพื่อจัดกลุ่มข้อมูลย่อย ห้ามใช้ปุ่ม Tab ให้ใช้การเคาะ Space bar 2 ครั้งแทน

11.2.2 การตั้งค่า YAML สำหรับ HTML และ DOCX

นี่คือรูปแบบมาตรฐานที่แนะนำสำหรับนักศึกษา เพื่อให้ได้รายงานที่สวยงามโดยไม่ต้องติดตั้งโปรแกรมเสริม:

---
title: "การวิเคราะห์ผลกระทบทางเศรษฐกิจดิจิทัล"
author: "ชื่อ-นามสกุล นักศึกษา"
date: last-modified
format:
  html:
    toc: true            # แสดงสารบัญ (Table of Contents) ด้านข้าง
    toc-title: "เนื้อหาในบทนี้"
    code-fold: true      # ซ่อนโค้ดไว้ ให้ผู้อ่านคลิกดูได้ (เฉพาะ HTML)
    theme: flatly        # เลือกโทนสีรายงานให้ดูเป็นมืออาชีพ
  docx:
    toc: true            # แสดงสารบัญใน Word
    number-sections: true # รันเลขหัวข้อ 1, 1.1, 1.2 ให้อัตโนมัติ
---

11.2.3 การจัดการภาษาไทยและระบบอ้างอิง

เพื่อให้คำบรรยายใต้รูปและตารางใน Word และ HTML แสดงผลเป็นภาษาไทย (“รูปที่”, “ตารางที่”) นักศึกษาควรเพิ่มส่วนนี้ใน YAML:

lang: th
crossref:
  fig-title: "รูปที่"
  tbl-title: "ตารางที่"
  fig-prefix: "รูปที่"
  tbl-prefix: "ตารางที่"

11.2.4 การควบคุมการประมวลผล

เพื่อจัดการให้โค้ดในรายงานดูสะอาดตา ไม่แสดงข้อความ Error หรือคำเตือนที่รกหน้ากระดาษ:

execute:
  echo: true      # แสดงโค้ดประกอบคำอธิบาย
  warning: false  # ซ่อนคำเตือนจาก Library ต่างๆ
  message: false  # ซ่อนข้อความการโหลดข้อมูล
Warningข้อควรระวังสำหรับนักศึกษา
  • ทำไมไม่ใช้ PDF?: การสร้าง PDF โดยตรงจาก Quarto จำเป็นต้องติดตั้งระบบ LaTeX หรือ Typst ซึ่งอาจมีปัญหาเรื่องฟอนต์ไทยและกินพื้นที่เครื่องสูง การส่งงานเป็น HTML (ส่งเป็นโฟลเดอร์) หรือ DOCX (ส่งเป็นไฟล์เดียว) จึงเป็นทางเลือกที่สะดวกและยืดหยุ่นที่สุด

  • การส่งงาน HTML: เมื่อนักศึกษาทำการ Render เป็น HTML ระบบจะสร้างไฟล์ .html และโฟลเดอร์เก็บรูปภาพมาให้ หากต้องการส่งงานให้ผู้อื่นดู ต้องส่งไปทั้งคู่ หรือใช้วิธีฝังทุกอย่างในไฟล์เดียวด้วยคำสั่ง embed-resources: true ใน YAML

11.3 การเขียนเนื้อหาด้วย Markdown

Markdown คือภาษาที่ใช้เขียนเนื้อหาบรรยายในไฟล์ Quarto (.qmd) ซึ่งถูกออกแบบมาให้ “เขียนง่าย” และ “อ่านรู้เรื่อง” แม้จะยังไม่ได้ Render เป็นรายงานจริง โดยมีรูปแบบการจัดหน้ากระดาษที่สำคัญดังนี้:

11.3.1 การจัดรูปแบบตัวอักษร

  • ตัวหนา (Bold): ใช้ **ข้อความ** สำหรับเน้นประเด็นสำคัญหรือชื่อตัวแปรทางเศรษฐศาสตร์ เช่น GDP, Inflation Rate

  • ตัวเอียง (Italic): ใช้ *ข้อความ* สำหรับคำศัพท์เฉพาะทางหรือชื่อภาษาต่างประเทศ เช่น Ceteris Paribus

  • หัวข้อ (Headings): ใช้เครื่องหมาย # นามหน้า (ยิ่ง # มาก หัวข้อยิ่งเล็ก)

    • # หัวข้อหลัก (บทที่)

    • ## หัวข้อรอง (หัวข้อใหญ่)

    • ### หัวข้อย่อย

11.3.2 การเขียนสมการคณิตศาสตร์

Quarto รองรับรูปแบบ \(\LaTeX\) ซึ่งเป็นมาตรฐานสากลในการเขียนสมการทางเศรษฐศาสตร์:

  • สมการในบรรทัด (Inline): ใช้ $สมการ$ เช่น อัตราการเติบโตคำนวณจาก \(g = \frac{\Delta Y}{Y}\) คำสั่งที่ใช้คือ $g =\frac{\Delta Y}{Y}$

  • สมการแบบแยกบรรทัด (Display): ใช้ $$สมการ$$ เพื่อวางสมการไว้ตรงกลางหน้ากระดาษ \[Y = C + I + G + (X - M)\]

คำสั่งที่ใช้คือ $$Y = C + I + G + (X - M)$$

สามารถใช้ตัวช่วยเขียนสมการจาก https://latexeditor.lagrida.com/

11.3.3 การใส่รูปภาพ

ในกรณีที่มีรูปภาพประกอบข้างนอก (เช่น ผังองค์กรหรือรูปถ่าย) สามารถใส่ได้ดังนี้:

![คำบรรยายใต้ภาพ](path/to/image.png){#fig-label width=80% }
  • เคล็ดลับ: การใส่ {#fig-label} จะช่วยให้เราอ้างอิงถึงรูปนี้ได้ด้วยคำสั่ง @fig-label ในเนื้อหา

11.3.4 การสร้างตาราง

ตารางใน Markdown สร้างได้ง่ายๆ ด้วยการใช้เครื่องหมายขีดเส้นแบ่ง:

| ตัวแปร | ความหมาย | หน่วยนับ |
| :--- | :--- | :---: |
| $P$ | ราคาสินค้า | บาท |
| $Q$ | ปริมาณเสนอซื้อ | หน่วย |
| $I$ | รายได้เฉลี่ย | บาท/เดือน |

: รายละเอียดตัวแปรในแบบจำลองอุปสงค์ {#tbl-variables}
Noteผลลัพธ์
Table 11.1: รายละเอียดตัวแปรในแบบจำลองอุปสงค์
ตัวแปร ความหมาย หน่วยนับ
\(P\) ราคาสินค้า บาท
\(Q\) ปริมาณเสนอซื้อ หน่วย
\(I\) รายได้เฉลี่ย บาท/เดือน
  • จุดสังเกต: การใช้ : ... {#tbl-xxx} ท้ายตาราง จะทำให้ตารางนี้มีเลขลำดับและอ้างอิงได้อัตโนมัติ
Tip

ผู้อ่านสร้างตารางในโปรแกรม Excel ก่อนแล้วจึงนำตารางที่ได้ไปแปลงเป็นตาราง จากคำสั่ง markdown โดยใช้เวบไซต์ https://www.tablesgenerator.com/

11.3.5 การสร้างรายการ

รายการแบบไม่มีลำดับ: ใช้เครื่องหมาย * หรือ -

ปัจจัยที่มีผลต่ออุปสงค์:

* ราคาสินค้า

* รสนิยมผู้บริโภค
Cautionผลลัพธ์

ปัจจัยที่มีผลต่ออุปสงค์:

  • ราคาสินค้า

  • รสนิยมผู้บริโภค

รายการแบบมีลำดับ: ใช้ตัวเลขตามด้วยจุด 1. 2. 3. เช่น

ปัจจัยที่มีผลต่ออุปสงค์:

1. ราคาสินค้า

2. รสนิยมผู้บริโภค
Cautionผลลัพธ์

ปัจจัยที่มีผลต่ออุปสงค์:

  1. ราคาสินค้า

  2. รสนิยมผู้บริโภค

สำหรับการเพิ่ม Sublist (รายการย่อย) ด้วย Markdown เพื่อจัดระเบียบเนื้อหาสามารถเขียนโดยการ “เคาะ Space bar 4 ครั้ง” (หรือกด Tab 1 ครั้ง) หน้าเครื่องหมายรายการย่อย ดังนี้

แบบที่ 1: รายการแบบมีลำดับ (ใช้ตัวเลข)

1. ราคาสินค้า

    1.1 ราคาสินค้าชนิดนั้น (ราคาเพิ่ม อุปสงค์ลด)

    1.2 ราคาสินค้าที่เกี่ยวข้อง (สินค้าทดแทนกัน หรือ สินค้าที่ใช้ร่วมกัน)

2. รสนิยมผู้บริโภค

    2.1 การเปลี่ยนแปลงตามฤดูกาล

    2.2 กระแสนิยมและการโฆษณา
Cautionผลลัพธ์
  1. ราคาสินค้า

    1.1 ราคาสินค้าชนิดนั้น (ราคาเพิ่ม อุปสงค์ลด)

    1.2 ราคาสินค้าที่เกี่ยวข้อง (สินค้าทดแทนกัน หรือ สินค้าที่ใช้ร่วมกัน)

  2. รสนิยมผู้บริโภค

    2.1 การเปลี่ยนแปลงตามฤดูกาล

    2.2 กระแสนิยมและการโฆษณ

แบบที่ 2: รายการแบบผสม (เลขหลัก + ขีดก่อย่อย) วิธีนี้ทำให้นักศึกษาแยกแยะหัวข้อหลักและรายละเอียดได้ชัดเจนขึ้น:

1. ราคาสินค้า

    - **สินค้าทดแทน (Substitute Goods):** เช่น หากราคาเนยสูงขึ้น อุปสงค์ของมาการีนอาจเพิ่มขึ้น

    - **สินค้าที่ใช้ร่วมกัน (Complementary Goods):** เช่น หากราคาน้ำมันสูงขึ้น อุปสงค์ของรถยนต์ขนาดใหญ่อาจลดลง

2. รสนิยมผู้บริโภค

    - **แนวโน้มตามกาลเวลา:** เช่น รสนิยมการใช้รถยนต์ไฟฟ้า (EV) แทนรถยนต์สันดาป

    - **การรับรู้ข้อมูลข่าวสาร:** ผลกระทบจากการรีวิวในโซเชียลมีเดีย
Cautionผลลัพธ์
  1. ราคาสินค้า
    • สินค้าทดแทน (Substitute Goods): เช่น หากราคาเนยสูงขึ้น อุปสงค์ของมาการีนอาจเพิ่มขึ้น
    • สินค้าที่ใช้ร่วมกัน (Complementary Goods): เช่น หากราคาน้ำมันสูงขึ้น อุปสงค์ของรถยนต์ขนาดใหญ่อาจลดลง
  2. รสนิยมผู้บริโภค
    • แนวโน้มตามกาลเวลา: เช่น รสนิยมการใช้รถยนต์ไฟฟ้า (EV) แทนรถยนต์สันดาป
    • การรับรู้ข้อมูลข่าวสาร: ผลกระทบจากการรีวิวในโซเชียลมีเดีย
Importantหมายเหตุ

ถ้าผู้อ่านเลือกใช้ RStudio ในการทำงาน จะสามารถใช้ Visual mode ช่วยการเขียนแบบต่างๆ เสมือนใช้โปรแกรม MS-word

11.4 การตั้งค่า Code Chunk เบื้องต้น

ใน Quarto เราใช้เครื่องหมาย

```{python} 
เพื่อเริ่มเขียนโค้ด และปิดด้วย 

```

11.4.1 Chunk Options ที่จำเป็นสำหรับการทำเอกสารต่างๆ

เราสามารถควบคุมพฤติกรรมของโค้ดผ่าน Chunk Options (ใช้เครื่องหมาย #|) ดังนี้:

  • #| echo: true: แสดงโค้ด (เหมาะสำหรับบทเรียน)

  • #| output: true: แสดงผลลัพธ์ (ตัวเลข/ตาราง/กราฟ)

  • #| warning: false: สำคัญมาก ใช้ซ่อนคำเตือน เช่น FutureWarning เพื่อให้หนังสือดูสะอาด

  • #| label: fig-xxx: กำหนดชื่ออ้างอิง (ต้องขึ้นต้นด้วย fig- เพื่อให้ระบบเรียก “รูปที่”)

  • #| fig-cap: "...": คำบรรยายใต้ภาพ

Table 11.2: ตารางสรุปการตั้งค่า Code Chunk สำหรับสถานการณ์ต่างๆ
สถานการณ์ echo output warning eval
บทเรียนสอนเขียนโค้ด true true false true
แสดงเฉพาะกราฟประกอบ false true false true
ตัวอย่างโค้ด (ไม่รัน) true false false false
การประมวลผลเบื้องหลัง false false false true
```{python}
#| label: fig-gdp-growth
#| fig-cap: "แนวโน้มการเติบโตของ GDP ในยุคเศรษฐกิจดิจิทัล"
#| echo: false
#| warning: false

import pandas as pd
import matplotlib.pyplot as plt

# โค้ดวิเคราะห์ข้อมูลตรงนี้
data = {'Year': [2023, 2024, 2025, 2026], 'GDP': [2.5, 2.8, 3.1, 3.5]}
df = pd.DataFrame(data)
plt.plot(df['Year'], df['GDP'])
plt.show()
```
Figure 11.1: แนวโน้มการเติบโตของ GDP ในยุคเศรษฐกิจดิจิทัล

11.5 แหล่งทรัพยากรสำหรับการศึกษาต่อ

เพื่อให้นักศึกษาสามารถหาข้อมูลเพิ่มเติมได้: