RStudio笔记本中不断出现与警告无关的警告消息
我开始使用RStudio笔记本,我仍在努力理解其中一些东西是如何工作的。 我不明白为什么在执行与消息完全无关的代码时会保留并显示一些生成的警告消息。例如,我有一个包含多个块的文档,其中最后一个块生成警告RStudio笔记本中不断出现与警告无关的警告消息,r,warnings,r-markdown,rnotebook,R,Warnings,R Markdown,Rnotebook,我开始使用RStudio笔记本,我仍在努力理解其中一些东西是如何工作的。 我不明白为什么在执行与消息完全无关的代码时会保留并显示一些生成的警告消息。例如,我有一个包含多个块的文档,其中最后一个块生成警告 > warnings() Warning messages: 1: Unknown or uninitialised column: 'perc.goal.met.period'. 2: Unknown or uninitialised column: 'perc.goal.met.per
> warnings()
Warning messages:
1: Unknown or uninitialised column: 'perc.goal.met.period'.
2: Unknown or uninitialised column: 'perc.goal.met.period'.
3: Unknown or uninitialised column: 'perc.goal.met.period'.
4: Unknown or uninitialised column: 'perc.goal.met.period'.
5: Unknown or uninitialised column: 'perc.goal.met.period'.
6: Unknown or uninitialised column: 'perc.goal.met.period'.
7: Unknown or uninitialised column: 'perc.goal.met.period'.
8: Unknown or uninitialised column: 'perc.goal.met.period'.
9: Unknown or uninitialised column: 'perc.goal.met.period'.
10: Unknown or uninitialised column: 'perc.goal.met.period'.
11: Unknown or uninitialised column: 'perc.goal.met.period'.
12: Unknown or uninitialised column: 'perc.goal.met.period'.
13: Unknown or uninitialised column: 'perc.goal.met.period'.
14: Unknown or uninitialised column: 'perc.goal.met.period'.
15: Unknown or uninitialised column: 'perc.goal.met.period'.
16: Unknown or uninitialised column: 'perc.goal.met.period'.
17: Unknown or uninitialised column: 'perc.goal.met.period'.
18: Unknown or uninitialised column: 'perc.goal.met.period'.
19: Unknown or uninitialised column: 'perc.goal.met.period'.
20: Unknown or uninitialised column: 'perc.goal.met.period'.
21: Unknown or uninitialised column: 'perc.goal.met.period'.
22: Unknown or uninitialised column: 'perc.goal.met.period'.
23: Unknown or uninitialised column: 'perc.goal.met.period'.
24: Unknown or uninitialised column: 'perc.goal.met.period'.
25: Unknown or uninitialised column: 'perc.goal.met.period'.
26: Unknown or uninitialised column: 'perc.goal.met.period'.
27: Unknown or uninitialised column: 'perc.goal.met.period'.
28: Unknown or uninitialised column: 'perc.goal.met.period'.
29: Unknown or uninitialised column: 'perc.goal.met.period'.
30: Unknown or uninitialised column: 'perc.goal.met.period'.
There were 30 warnings (use warnings() to see them)
我同意这个警告。但是后来,我想我应该在第一个块中加载一个额外的库(在这里加载它们)。运行该块后,我得到:
```{r echo=F, message=F, warnings=F, include=F}
# Load libraries
library(rgdal)
library(raster)
library(openxlsx)
library(tidyverse)
library(dplyr)
library(magrittr)
library(ggplot2)
library(rasterVis)
```
There were 30 warnings (use warnings() to see them)
如果我看到警告,它们是我以前打印的。
为什么我在这里看到他们?我在与变量perc.goal.met.period
无关的其他块中也看到了这一点。如果我看到这些警告,它们会在一段时间内停止出现,但在我仍然无法预料的时刻,它们最终会在某个时候重新出现
对这种行为有合乎逻辑的解释吗?非常感谢你的帮助 在清除警告消息之前,您将看到警告消息。运行warnings()函数不能做到这一点。 要清除警告,可以执行以下命令:
assign("last.warning", NULL, envir = baseenv())
不过,最好的方法是修复代码,这样就不会产生警告。一种处理方法是在R中使用tryCatch()
您也可以通过使用
superswarnings()
函数禁用所有警告,但不建议这样做,因为这样会阻止您查看任何警告。我的经验是,在RStudio中发生这种情况时,我的代码仍然有错误,即使没有运行(例如,当我留下一些错误代码待以后修改时)。当我删除、更改或将相关行转换为注释时,此行为结束。我猜这是由RStudio解释器引起的。知道使用base R的人是否也有同样的问题是很有趣的 这种事经常发生在我身上。如果我编辑并保存一个rmd(我认为这是关键),那么我在控制台中输入的下一个命令将返回会话50x中的所有警告。哦!所以这不仅仅发生在我身上。也许这只是一个提醒您代码中某个地方有警告的特性。谢谢你的评论,弗兰克!我认为当你缓存一个区块时会发生这种情况,警告会在稍后返回。这可能是对的,我的案例很有用:assign(“last.warning”,NULL,envir=baseenv())