r - 包构建/检查删除 htmlwidget 派生文件

标签 r plotly r-markdown r-package htmlwidgets

我在构建使用 plotly 图形作为 htmlwidgets 的包时遇到问题。似乎包含图形和相关资源的支持文件要么从未创建,要么在构建/检查过程中的某个时刻被删除。

我问过相关问题here它使用 buildVignette 来创建小插图。虽然这个问题已经解决,但在进行完整的构建和检查时,使用那里的解决方案不起作用。

我创建了一个最小的包来测试 Github 。如果构建/检查/安装然后查看小插图,就会看到:

enter image description here

事实上,构建的包中不存在任何目录结构或文件。

奇怪的是,这在二月初的真实环境中运行良好(即不是测试包,文档显示了工作小部件 here ),表明某些内容发生了变化,但我无法弄清楚发生了什么变化。

我仔细查看了最新版本的依赖包的组合,这似乎不是问题。我还查看了 r-source 文件 build.Rcheck.R 中的最新更改。唯一相关的更改在此提交中:

commit eed23bae244b17b9366bf7bf6863f6f51f17064d Author: smeyer <smeyer@00db46b3-68df-0310-9c12-caf00c1e9a41> Date: Sat Feb 19 01:10:34 2022 +0000

'R CMD Sweave --clean' no longer removes existing files (PR#18242)

但我不认为这是问题所在。构建/检查代码很复杂,我无法弄清楚这些文件发生了什么。

最佳答案

要将交互式图形嵌入到小插图中,我们可以使用输出 rmarkdown::html_vignette(html_document 的轻量级版本)来构建它。

---
title:  "Test Vignette"
output:
  rmarkdown::html_vignette:
      toc: yes
vignette: >
    %\VignetteIndexEntry{Vignette}
    %\VignetteEngine{knitr::rmarkdown}
    %\VignetteEncoding{UTF-8}
---
```{r SetUp, echo = FALSE, eval = TRUE, results = "hide"}
set.seed(13)
suppressPackageStartupMessages(library("knitr"))
suppressPackageStartupMessages(library("plotly"))
opts_chunk$set(eval = TRUE, echo = FALSE)
```

**Test Vignette**
Problem solved?

```{r testFig, results = "show"}
if (!is_latex_output()) {
  DF <- data.frame(
  x <- rnorm(50),
  y <- rnorm(50),
  z <- rnorm(50))
  plot_ly(
    name = "data", DF, x = ~x, y = ~y, z = ~z,
    marker = list(size = 2.0)) %>%
    add_markers()
}
```

html_vignette presetshtml_document 略有不同。因此,图形可能看起来很小,可能需要一些手动调整。可以使用 CSS 进行其他样式更改。可以使用找到默认文件

system.file("rmarkdown", "templates", "html_vignette", "resources", "vignette.css",  package = "rmarkdown")

虽然它通过了 R CMD 检查,但可能会伤害一些 feelings如果提交给 CRAN:

neither data nor documentation should exceed 5MB

关于r - 包构建/检查删除 htmlwidget 派生文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71832517/

相关文章:

python - 通过选择散点图上的点来更新虚线表

r - 有没有办法在绘图热图的右侧移动行标签?

r - Rmd Shiny 中数据特定的 selectInput 选择

R Markdown 标签悬停输出

r - 将列中的独特特征转换为变量名称并将原始特征虚拟编码为 R 中的变量

r - 将列表转换为是/否的数据框

r - 组低频计入单个 'other' 类别

r - 在 R 中填表

R:如何构建具有多个条形图和双轴的条形图?

sql - 使用RSQLite直接使用SQL操作r中的数据框