如何在发送Rmd文件时隐藏代码仅保留输出用于教学练习?
R Markdown隐藏代码仅保留输出的实现方法
- 全局隐藏所有代码:在Rmd文件的初始全局配置代码块中加入
echo = FALSE参数,示例配置如下:
该配置会让所有后续代码块默认不展示源代码,仅输出运行结果、图表、表格等内容,额外加的knitr::opts_chunk$set(echo = FALSE, message = FALSE, warning = FALSE)message和warning参数可以同时屏蔽运行时的提示和警告信息,输出结果更整洁。 - 局部隐藏指定代码块:如果仅需要隐藏部分代码,只需要在对应代码块的头部设置参数即可,示例:
{r 绘制散点图, echo=FALSE},其余未设置该参数的代码块仍会正常展示源代码。 - 输出格式选择:不要直接发送.Rmd源文件,源文件中默认保留所有代码内容。可以根据需求渲染为HTML、PDF、Word格式发送,也可以选择
output: html_notebook格式渲染生成.nb.html单文件,效果类似Jupyter Notebook,接收方无需额外工具即可打开查看,默认看不到隐藏的代码。
R生态适合练习设计的相关工具
- learnr包:R核心团队官方开发的交互式练习工具,完全基于R Markdown生态开发。你可以在文档中预设预期输出结果、隐藏参考代码,还可以自定义结果校验规则、设置解题提示,学生打开生成的网页即可直接在浏览器中编写运行R代码,系统会自动判断输出是否符合要求,无需本地安装R环境即可使用。
- bookdown包:适合制作系统性的习题册、教材配套练习,支持全局或局部控制代码可见性,你可以将所有参考代码设置为隐藏,仅展示题目要求和目标输出,最终可导出为在线网页版或离线电子版习题集。
- RStudio Cloud:云端协作平台,你可以预先创建共享工作区,上传好配套数据集、隐藏了参考代码的练习模板,学生加入工作区后可直接在云端打开练习文件,根据展示的目标输出编写代码复现结果,你也可以直接在云端查看所有学生的提交内容。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

