web-dev-qa-db-fra.com

Les messages d'avertissement continuent d'apparaître dans les cahiers RStudio sous forme de morceaux non liés aux avertissements

Je commence à utiliser les cahiers RStudio et j'essaie encore de comprendre comment certaines choses fonctionnent ... Je ne comprends pas pourquoi certains messages d'avertissement sont conservés et apparaissent lors de l'exécution de code totalement indépendant du message. Par exemple, j'ai un document avec plusieurs morceaux, où le dernier produit l'avertissement 

> 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)

Je suis d'accord avec cet avertissement. Mais plus tard, j'ai pensé charger une bibliothèque supplémentaire dans le premier des morceaux (où je les charge). Après avoir exécuté ce morceau, je reçois: 

```{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)

Si je vois les avertissements, ce sont ceux que j’avais déjà imprimés ... Pourquoi est-ce que je les vois ici? Je vois cela aussi dans d'autres morceaux non liés à la variable perc.goal.met.period. Si je vois les avertissements, ils cesseront de paraître pendant un moment, mais à un moment que je ne suis toujours pas en mesure d'anticiper, ils réapparaîtront éventuellement à un moment donné.

Y a-t-il une explication logique à ce comportement? Merci beaucoup pour votre aide!

22
Javier Fajardo

Vous verrez des messages d'avertissement jusqu'à ce que vous les effaciez. L'exécution de warnings () ne fait pas cela . Pour effacer les avertissements, vous pouvez exécuter la commande suivante:

assign("last.warning", NULL, envir = baseenv())

La meilleure approche consiste toutefois à corriger votre code afin que les avertissements ne soient pas générés. Une solution consiste à utiliser tryCatch() dans R.

Vous pouvez également désactiver tous les avertissements à l'aide de la fonction supressWarnings(), mais cela n'est pas recommandé car cela vous empêchera de les voir.

1
Katia