You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R Knit在devtools创建的Vignette中插入代码块时出错求助

解决Vignette中sampleFromData函数运行报错的问题

看起来你在为simTools包构建vignette时,遇到了代码块无法正常运行的问题,我来梳理几个常见的排查方向和解决办法:

1. 检查包依赖的声明

你的vignette中用到了mangoTraining包,但如果你的simTools包的DESCRIPTION文件没有声明对它的依赖,knit过程可能会找不到这个包。

  • 推荐做法:在项目根目录下运行以下命令,把mangoTraining添加到DESCRIPTION的Suggests字段(因为vignette属于示例文档,用Suggests比Imports更合适):
devtools::use_package("mangoTraining", type = "Suggests")
  • 之后重新构建你的包,或者确保在vignette的代码块开头明确加载mangoTraining(你已经做了这一步,但依赖声明是更规范的做法)。

2. 明确指定数据集的来源

有可能demoData并没有被正确识别为mangoTraining包中的数据集,导致函数找不到输入数据。可以尝试在代码中明确指定数据集的包归属:

library(mangoTraining)
# 明确指定demoData来自mangoTraining包
example1 <- sampleFromData(mangoTraining::demoData, size=5)
example1

3. 确认vignette的运行环境

Knit vignette时通常会在一个干净的R环境中执行,和你平时的工作环境可能不同:

  • 如果你在vignette中用到了simTools包本身的功能,需要确保包被正确加载。可以在vignette开头添加:
devtools::load_all("../simTools")
  • 或者先通过devtools::build()构建你的包,再用library(simTools)加载,这样更符合CRAN的规范。

4. 先在控制台测试代码

先在R控制台中单独运行这段代码:

library(mangoTraining)
example1 <- sampleFromData(demoData, size=5)
example1

如果控制台能正常运行,说明问题出在vignette的运行环境或包依赖配置上;如果控制台也报错,那可能是mangoTraining包的版本问题,或者sampleFromData函数的参数使用有误,可以检查函数的帮助文档(?sampleFromData)确认用法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:01:26