it-swarm.com.de

Warnmeldungen werden in RStudio-Notizbüchern in Abschnitten angezeigt, die nicht mit den Warnungen zusammenhängen

Ich beginne damit, RStudio-Notebooks zu verwenden, und ich versuche immer noch zu verstehen, wie einige der Dinge funktionieren ... Ich verstehe nicht, warum einige erzeugte Warnmeldungen aufbewahrt werden und angezeigt werden, wenn Code ausgeführt wird, der in keinem Zusammenhang mit der Nachricht steht. Ich habe zum Beispiel ein Dokument mit mehreren Brocken, bei dem der letzte von ihnen die Warnung erzeugt 

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

Ich bin mit dieser Warnung in Ordnung. Aber später dachte ich, ich würde eine zusätzliche Bibliothek in die ersten Brocken laden (wo ich sie lade). Nachdem ich dieses Stück ausgeführt habe, bekomme ich: 

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

Wenn ich die Warnungen sehe, sind es die, die ich vor gedruckt habe ... Warum sehe ich sie hier? Ich sehe das auch in anderen Chunks, die nicht mit der Variablen perc.goal.met.period zusammenhängen. Wenn ich die Warnungen sehe, erscheinen sie für eine Weile nicht mehr, aber in einem Moment, den ich immer noch nicht vorhersehen kann, erscheinen sie irgendwann wieder.

Gibt es eine logische Erklärung für dieses Verhalten? Vielen dank für Deine Hilfe!

22
Javier Fajardo

Sie erhalten Warnmeldungen, bis Sie sie löschen. Das Ausführen der warnings () - Funktion führt dies nicht aus .. Um Warnungen zu löschen, können Sie den folgenden Befehl ausführen:

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

Der beste Ansatz ist jedoch, Ihren Code so zu korrigieren, dass die Warnungen nicht ausgegeben werden. Eine Möglichkeit, damit umzugehen, ist die Verwendung von tryCatch() in R.

Sie können auch alle Warnungen mit der Funktion supressWarnings() deaktivieren. Dies wird jedoch nicht empfohlen, da Sie sonst keine Warnmeldungen sehen können.

1
Katia

Ich habe die Erfahrung gemacht, dass dies in RStudio auftritt, während mein Code immer noch den Fehler aufweist, auch wenn dieser nicht ausgeführt wird (zum Beispiel, wenn ich einen falschen Code für eine spätere Überarbeitung hinterlasse). Wenn ich die relevanten Zeilen lösche, ändere oder in Kommentare umwandle, endet dieses Verhalten. Ich vermute, dass dies durch den RStudio-Interpreter verursacht wird. Es wäre interessant zu wissen, ob Leute, die Base R verwenden, dasselbe Problem haben.

0
JASC