R-检索在Knitr会议上产生的警告



我有一个长的r标记脚本,该脚本会生成五十多个Knitr错误。它产生一个需要维修的.pptx文件(尽管我看不到需要修复的内容(。有时PowerPoint基于第一个标题幻灯片重命名文件。编织会话会产生警告消息,邀请我,因此通过输入warnings()检查它们。就我看不见的环境而言,键入warnings()无济于事。

创建的输出:demo.pptx有50个或更多警告(使用 警告((查看前50个(

我不能给出一个简洁的,可重复的示例来产生尼特尔警告,但是我可以告诉你,它们来自caret和gbm,greg fort form 格式化输出(黑色(和无态度的消息(红色((甚至不需要的图,尽管默认设置为vals = false。

这是我的.rmd文件的头:

---
title: "Demo of knitr warnings when making Powerpoint"
author: "author name"
output:
  powerpoint_presentation:
    slide_level: 2
---
```{r global_options, include=FALSE}
knitr::opts_chunk$set(fig.width=10, echo=FALSE, warning=FALSE, message=FALSE, cache=FALSE)
```
```{r setup}   
suppressPackageStartupMessages(library(knitr))
suppressPackageStartupMessages(library(rmarkdown))
```

我如何发现尼特尔执行的环境,以便访问警告?当我尝试重现警告时,我注意到我的代码产生的警告显然没有附加到last.warnings list。

使用rmarkdown::render("yourfile.Rmd")运行knitr,并且将在当前会话中运行。然后警告((将起作用。

例如,我没有看到您的代码中的任何警告,但是当我添加

for ( i in 1:100)
  warning(i)

在代码块上,我收到了像您一样的消息。所以我使用了上面的想法,看到

> rmarkdown::render("~/temp/Untitled.Rmd")

processing file: Untitled.Rmd
  |................                                                 |  25%
  ordinary text without R code
  |................................                                 |  50%
label: global_options (with options) 
List of 1
 $ include: logi FALSE
  |.................................................                |  75%
  ordinary text without R code
  |.................................................................| 100%
label: setup
output file: Untitled.knit.md
'/Applications/RStudio 2.app/Contents/MacOS/pandoc/pandoc' +RTS -K512m -RTS Untitled.utf8.md --to pptx --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash+smart --output Untitled.pptx --slide-level 2 
Output created: Untitled.pptx
There were 50 or more warnings (use warnings() to see the first 50)
> warnings()
Warning messages:
1: In eval(expr, envir, enclos) : 1
2: In eval(expr, envir, enclos) : 2
3: In eval(expr, envir, enclos) : 3
4: In eval(expr, envir, enclos) : 4
5: In eval(expr, envir, enclos) : 5
6: In eval(expr, envir, enclos) : 6
7: In eval(expr, envir, enclos) : 7
8: In eval(expr, envir, enclos) : 8
9: In eval(expr, envir, enclos) : 9
10: In eval(expr, envir, enclos) : 10
11: In eval(expr, envir, enclos) : 11
12: In eval(expr, envir, enclos) : 12
13: In eval(expr, envir, enclos) : 13
14: In eval(expr, envir, enclos) : 14
15: In eval(expr, envir, enclos) : 15
16: In eval(expr, envir, enclos) : 16
17: In eval(expr, envir, enclos) : 17
18: In eval(expr, envir, enclos) : 18
19: In eval(expr, envir, enclos) : 19
20: In eval(expr, envir, enclos) : 20
21: In eval(expr, envir, enclos) : 21
22: In eval(expr, envir, enclos) : 22
23: In eval(expr, envir, enclos) : 23
24: In eval(expr, envir, enclos) : 24
25: In eval(expr, envir, enclos) : 25
26: In eval(expr, envir, enclos) : 26
27: In eval(expr, envir, enclos) : 27
28: In eval(expr, envir, enclos) : 28
29: In eval(expr, envir, enclos) : 29
30: In eval(expr, envir, enclos) : 30
31: In eval(expr, envir, enclos) : 31
32: In eval(expr, envir, enclos) : 32
33: In eval(expr, envir, enclos) : 33
34: In eval(expr, envir, enclos) : 34
35: In eval(expr, envir, enclos) : 35
36: In eval(expr, envir, enclos) : 36
37: In eval(expr, envir, enclos) : 37
38: In eval(expr, envir, enclos) : 38
39: In eval(expr, envir, enclos) : 39
40: In eval(expr, envir, enclos) : 40
41: In eval(expr, envir, enclos) : 41
42: In eval(expr, envir, enclos) : 42
43: In eval(expr, envir, enclos) : 43
44: In eval(expr, envir, enclos) : 44
45: In eval(expr, envir, enclos) : 45
46: In eval(expr, envir, enclos) : 46
47: In eval(expr, envir, enclos) : 47
48: In eval(expr, envir, enclos) : 48
49: In eval(expr, envir, enclos) : 49
50: In eval(expr, envir, enclos) : 50

是!@user2554330是正确的。rmarkdown::render("yourfile.Rmd")在您自己的全球环境中正常工作。

如果您正在使用rstudio,请记住一些事情:

  • 源是保存到磁盘的任何东西,所以不要忘记保存。
  • 您可以使用knit.global()检查环境。无论您是键入命令还是使用针织按钮(显然是催生新的R会话(,结果将是相同的。您可以到达第一个,但不能到达第二。

    环境:r_globalenv

  • 您不会在本地环境中看到对象执行已完成。
  • 和PowerPoint不会自动启动。

是的,所有丑陋的警告(就我的GBM而言(都在那里。

最新更新