Jak globalnie pomijać ostrzeżenia w skrypcie języka R.


174

Mam długi skrypt R, który generuje ostrzeżenia, które mogę zignorować. mógłbym użyć

suppressWarnings(expr)

dla pojedynczych wypowiedzi. Ale jak mogę globalnie wyłączyć ostrzeżenia w języku R? Czy jest na to jakaś opcja?

Odpowiedzi:


228

Możesz użyć

options(warn=-1)

Pamiętaj jednak, że globalne wyłączenie komunikatów ostrzegawczych może nie być dobrym pomysłem.

Aby ponownie włączyć ostrzeżenia, użyj

options(warn=0)

(lub cokolwiek domyślnego warn, zobacz tę odpowiedź )


5
To działa, ale podejście Francesco Napolitano z 22 września 2015 r. Jest metodą bezpieczniejszą i bardziej globalną.
Andy Clifton

Zgadzam się z @Andy, a jego odpowiedź powinna być oznaczona jako zaakceptowana.
JASC

106

Chcesz options(warn=-1). Należy jednak pamiętać, że warn=0nie jest to najbezpieczniejszy poziom ostrzegawczy i nie należy go traktować jako aktualnego, szczególnie w przypadku skryptów lub funkcji. Dlatego najbezpieczniejszym sposobem tymczasowego wyłączenia ostrzeżeń jest:

oldw <- getOption("warn")
options(warn = -1)

[your "silenced" code]

options(warn = oldw)

41

Zamieniłem teraz printfwywołania na wywołania warningw kodzie C. Będzie skuteczny w wersji 2.17.2, która powinna być dostępna jutro wieczorem. Wtedy powinieneś być w stanie uniknąć ostrzeżeń za pomocą suppressWarnings()lub którejkolwiek z innych wyżej wymienionych metod.

suppressWarnings({ your code })

6
to jest właściwy sposób, aby to zrobić. Powinien zostać oznaczony jako odpowiedź.
Denis

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.