You need to enable JavaScript to run this app. 使用roxygen2为R内置数据集添加生成代码的文档渲染问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

使用roxygen2为R内置数据集添加生成代码的文档渲染问题咨询

异常根因

两个语法问题直接导致渲染失效:

  • roxygen2 默认的 Markdown 解析器不识别 knitr 专用的```{r} 可执行代码块标记,这类标记放到 roxygen 注释中会被当成普通文本,无法触发代码块格式渲染
  • 代码块和前置说明文本之间没有空行分隔,解析器无法定位代码块的起始边界
修复操作
  1. 替换代码块围栏标记:把{r} 改成` r `(去掉花括号,直接跟语言名),用标准 Markdown 语言标注格式,roxygen2 原生支持这种写法自动给R代码加语法高亮
  2. 补充分隔空行:在“通过以下代码生成:”的下一行加一行仅带#'的空注释行,明确分隔普通文本和代码块
  3. 保持注释前缀一致:代码块的每一行内容、每一组围栏标记前面,都必须保留#'前缀,不要遗漏
正确写法示例
#' @details
#' 本数据集包含200条观测值,通过以下代码生成:
#'
#' ```r
#' set.seed(123)
#' N = 200
#' bsort.df = data.frame(n = rep(0, N), time = rep(0, N))
#'
#' n = sample(100:1000, size = N, replace = TRUE)
#'
#' pb = txtProgressBar(0, N, style = 3)
#'
#' for(i in 1:N){
#'   x = rnorm(n[i])
#'   bsort.df$n[i] = n[i]
#'   bsort.df$time[i] = system.time(bubbleSort(x))[1]
#'   setTxtProgressBar(pb, i)
#' }
#' close(pb)
#' ```
注意事项
  • 上述写法同时兼容 R 内置帮助文档渲染、pkgdown 包网站构建两种场景,不需要额外开启特殊配置
  • 只有需要嵌入动态生成的代码运行结果时,才需要额外配置 roxygen2 的 knitr 支持,单纯展示生成代码的场景用上述写法完全足够

内容的提问来源于stack exchange,提问作者James Curran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.12 12:36:09