1 添加课程材料指南
1.1 文件组织
课程材料应放在 fundamentals/ 目录下,使用数字前缀便于排序:
fundamentals/
├── 00-setup-sas-jupyter-zh.qmd # 配置指南
├── 01-course-overview-zh.qmd # 课程概览
├── 02-data-reading-lesson-zh.qmd # 第2周:课程讲义
├── 02-data-reading-practice.ipynb # 第2周:练习notebook
├── 02-data-reading-solution.ipynb # 第2周:答案
├── 03-data-manipulation-lesson-zh.qmd # 第3周:课程讲义
├── 03-data-manipulation-practice.ipynb # 第3周:练习
└── ...
1.2 文件命名规范
1.2.1 课程讲义 (.qmd 文件)
- 格式:
{编号}-{主题}-lesson-zh.qmd - 示例:
03-data-manipulation-lesson-zh.qmd - 用途: 理论内容、概念解释、示例代码
1.2.2 练习 Notebook (.ipynb 文件)
- 格式:
{编号}-{主题}-practice.ipynb - 示例:
03-data-manipulation-practice.ipynb - 用途: 学生动手练习、包含题目和代码框架
1.2.3 答案 Notebook (.ipynb 文件)
- 格式:
{编号}-{主题}-solution.ipynb - 示例:
03-data-manipulation-solution.ipynb - 用途: 完整答案和详细解释
1.3 创建新的课程讲义 (.qmd)
- 复制模板或创建新文件
- 添加 YAML 前置内容:
---
title: "数据处理基础"
subtitle: "DATA步与条件逻辑"
date: "2026-01-15"
categories: [课程, 数据处理]
---- 编写内容,可以包含 SAS 代码块:
## 创建新变量
```sas
data new_dataset;
set old_dataset;
new_var = old_var * 2;
run;
```1.4 创建新的练习 Notebook (.ipynb)
1.4.1 方法1:在 VS Code 中创建
- 右键点击
fundamentals/文件夹 - 选择 “New File”
- 输入文件名:
03-your-topic-practice.ipynb - 打开文件后,点击右上角选择内核
- 选择 “SAS” 内核
1.4.2 方法2:使用命令行
# 创建新notebook
code fundamentals/03-your-topic-practice.ipynb1.4.3 Notebook 结构建议
# 标题
## 练习 1: 基础任务
### 任务 1.1: 具体要求
[代码单元格]
## 练习 2: 进阶任务
### 任务 2.1: 具体要求
[代码单元格]
## 挑战练习
[代码单元格]
## 笔记与思考1.5 在 Notebook 中配置 SAS 内核
确保 notebook 元数据包含:
{
"kernelspec": {
"display_name": "SAS",
"language": "sas",
"name": "sas"
}
}1.6 添加数据文件
如果需要外部数据文件:
- 创建
fundamentals/data/目录 - 将数据文件放入其中
- 在代码中使用相对路径:
proc import datafile="data/mydata.csv"
out=work.mydata
dbms=csv
replace;
run;
1.7 使用 sashelp 数据集
推荐使用 SAS 内置数据集进行练习:
/* 常用数据集 */
sashelp.class /* 学生数据 */
sashelp.cars /* 汽车数据 */
sashelp.heart /* 心脏病数据 */
sashelp.baseball /* 棒球数据 */
sashelp.iris /* 鸢尾花数据 */
1.8 测试 Notebook
在发布前测试:
- 确保 SAS 内核已安装
- 运行所有单元格(Cell > Run All)
- 检查输出是否正确
- 清除输出(Cell > All Output > Clear)再提交
1.9 更新网站
添加新文件后:
- Quarto 会自动在 listing 中显示新文件
- 重新构建网站:
quarto render - 或使用预览模式自动更新:
quarto preview
1.10 示例:完整工作流
# 1. 创建新的课程讲义
code fundamentals/04-merging-data-lesson-zh.qmd
# 2. 创建练习notebook
code fundamentals/04-merging-data-practice.ipynb
# 3. 编写内容...
# 4. 测试notebook(在VS Code中运行所有单元格)
# 5. 创建答案notebook
code fundamentals/04-merging-data-solution.ipynb
# 6. 预览网站
quarto preview
# 7. 提交到Git
git add fundamentals/04-*
git commit -m "Add Week 4: Merging Data"
git push1.11 常见问题
1.11.1 Q: Notebook 找不到 SAS 内核?
A: 运行 setup-sas-kernel.ps1 或手动安装:
pip install sas_kernel
python -m sas_kernel.install --user1.11.2 Q: SAS 连接失败?
A: 检查 ~/.saspy/sascfg_personal.py 中的 SAS 路径是否正确
1.11.3 Q: 中文显示乱码?
A: 在配置中设置:'encoding': 'utf-8'
1.11.4 Q: Notebook 输出太长?
A: 使用 (obs=10) 限制输出行数:
proc print data=sashelp.class (obs=10);
run;