R 语言学习工具 JupyterLab
从安装 R 内核到绘制模拟医学研究数据,记录在 JupyterLab 中整理可复现分析笔记的方法。
对刚开始接触科研的医学生来说,统计分析最难的部分往往不是输入某一行代码,而是过几周还能说清:数据从哪里来、做过哪些处理、图表为何长成这样。JupyterLab 把文字说明、R 代码和运行结果放在同一份笔记里,适合用来记录这条思路。
本文讨论的是学习工具与数据分析习惯。文中的数据均为虚构示例,不包含患者信息,也不用于医学判断。
为什么把 R 放进 JupyterLab?
R 适合处理表格、做描述性统计和绘图。JupyterLab 提供交互式笔记本:可以先写研究问题,再放一段代码,接着解释输出。与只保存一张最终图相比,这样的记录更容易复查,也方便和同学讨论分析步骤。
在医学学习场景中,一份笔记可以按“问题—数据—代码—解释”展开。这里的重点并非把每项分析都自动化,而是让每个结论都能追溯到相应的数据和代码。
图 1:把分析过程与解释写在同一份笔记中。
在 Debian 上准备环境
下面是一种便于个人学习的安装方式。JupyterLab 使用 Python 虚拟环境,R 则安装本机的 R 与 IRkernel。安装软件时请使用可信的软件源;如果已有 R 或 JupyterLab,可跳过相应步骤。
sudo apt update
sudo apt install python3-venv r-base libzmq3-dev libcurl4-openssl-dev libssl-dev
python3 -m venv .jupyter-venv
. .jupyter-venv/bin/activate
python -m pip install jupyterlab
R -q -e 'install.packages("IRkernel", repos="https://cloud.r-project.org")'
R -q -e 'IRkernel::installspec(user = TRUE)'
jupyter lab
运行 jupyter lab 后,在启动器中选择 R 笔记本。如果看不到 R,先确认执行 IRkernel::installspec() 时仍处于安装 JupyterLab 的虚拟环境,再检查 jupyter kernelspec list 的结果。JupyterLab 和 IRkernel 的安装步骤以各自的官方文档为准,链接见文末。
用模拟数据做一次描述性分析
假设有两组完全虚构的观察值,每组各五条。我们只想了解它们的分布,不进行临床解释,也不把这十条记录当成真实研究证据。新建一个 R 笔记本,运行以下代码:
study <- data.frame(
group = rep(c("A", "B"), each = 5),
marker = c(33, 39, 47, 55, 61, 44, 53, 63, 74, 81)
)
aggregate(marker ~ group, data = study, FUN = median)
这段代码会得到 A 组中位数 47、B 组中位数 63。中位数只是描述这组模拟数据的一个数字;在实际医学研究里,还要先核对研究设计、测量单位、缺失值、样本来源和可能的混杂因素。
下一格可以画出每条观察值,而不仅是两个汇总数字:
stripchart(
marker ~ group,
data = study,
vertical = TRUE,
method = "stack",
pch = 19,
col = c("#4f8070", "#c38d69"),
xlab = "模拟分组",
ylab = "模拟观察值(任意单位)"
)
图 2:与代码对应的模拟数据示意图;所有数值均为虚构。
图形能帮助我们看到离散程度,但不能替代研究设计。即便两组的中位数不同,也不能仅凭这个小样本示例推断某项干预有效,更不能据此做诊疗决定。
让笔记更容易复查
我的做法是在每份笔记开头写清楚三个问题:数据是否真实、分析想回答什么、有哪些限制。之后再按顺序记录导入、清理、统计和绘图代码。对于真正的研究资料,还应遵循所在机构的数据管理与伦理要求,避免把可识别个人身份的信息写进笔记或提交到公开仓库。
JupyterLab 是整理过程的工具。可靠的医学结论仍然需要合适的研究设计、数据质量控制,以及具有相关专业能力的审阅。