R:plot_ly() 在每个会话之前仅工作一次:“verbose 必须为 TRUE 或 FALSE”

问题描述 投票:0回答:1

我做什么

我正在将“OpenIntro::现代统计教程简介”翻译成德语。我使用下载的 .zip 教程来执行此操作:https://openintrostat.github.io/ims-tutorials/。这些教程是以 .Rmd 文件形式编写的 learnr::tutorials。在教程 3 第 8 课中,我遇到了无法解决的错误。

问题

在学习本教程时,您会遇到

plot_ly()
功能四次。但它只能按预期工作一次(在一次会话中)。再次使用该函数,出现一条错误消息:“verbose 必须为 TRUE 或 FALSE”。在 RStudio“渲染”窗格中:“从第 11-44 行退出 [ex5-babies-plotly] (exercise.Rmd)”。这指向
{r setup}
,但也让我想知道,因为
verbose = FALSE

knitr::opts_chunk$set(fig.align = "center", 
                      fig.height = 3, 
                      fig.width = 5,
                      echo = FALSE, 
                      message = FALSE, 
                      warning = FALSE,
                      verbose = FALSE)

我尝试过检查的事情

在 RStudio 中运行

plot_ly
几次是没有问题的。

在shinyapps上的

original
中运行plot_ly几次也可以。

我尝试将

knitr::opts_chunk$set(verbose = FALSE)
作为使用
plot_ly()
函数的块中的第一行。没成功!

一切都是最新的。

问题

我不明白为什么它只在第一次起作用。你有解释吗? 你知道解决这个问题的方法吗?

r plotly verbose learnr
1个回答
0
投票

这并不能解决实际问题,它只是一种解决方法。

有关修复的唯一相应信息将责任归咎于软件包

data.table
。 (您可以在here阅读有关内容。)显然,
data.table
不是问题所在。不幸的是,我不完全确定问题是什么。

我提供的修复方法是在每次调用绘图之间卸载 Plotly 库。您可以让这些块不可见,这样读者就不会知道它们的存在。我鼓励您为自己留下评论,以便您记住为什么这些评论会在这里。

这是英文版本的摘录,以及我提供的修复程序。

```{r unsetter, include=F}
unloadNamespace("plotly")
```

```{r ex3-mariokart, exercise=TRUE}
# load plotly package
library(plotly) 

# draw the 3D scatterplot
p <- plot_ly(data = mariokart, z = ~ ____,x = ~____, y = ~____, opacity = 0.6) |>
  add_markers() 
  
# draw the plane
p |>
  add_surface(x = ~x, y = ~y, z = ~_____, showscale = FALSE)
```

请注意,我已设置

include=FALSE
,以便用户看不到它。此外,再次卸载后我没有调用该库,因为它是在用户可见的代码中调用的。

© www.soinside.com 2019 - 2024. All rights reserved.