R Komut Dosyasında global olarak uyarıları bastırmak


174

Göz ardı edebileceğim bazı uyarılar atan uzun bir R betiğim var. kullanabilirim

suppressWarnings(expr)

tek ifadeler için. Ancak, R'deki uyarıları küresel olarak nasıl engelleyebilirim? Bunun için bir seçenek var mı?

Yanıtlar:


228

Kullanabilirsin

options(warn=-1)

Ancak, uyarı mesajlarını küresel olarak kapatmanın iyi bir fikir olmayabileceğini unutmayın.

Uyarıları tekrar açmak için

options(warn=0)

(veya varsayılanınız ne olursa olsun warn, bu cevaba bakın )


5
Bu işe yarar, ancak Francesco Napolitano'nun 22 Eylül 2015'teki yaklaşımı, daha güvenli ve küresel olarak daha uygulanabilir bir yöntemdir.
Andy Clifton

@Andy'ye katılıyorum ve cevabı kabul edilen olarak işaretlenmeli.
JASC

106

Sen istiyorsun options(warn=-1). Bununla birlikte, warn=0en güvenli uyarı seviyesi olmadığını ve özellikle komut dosyaları veya işlevler içinde geçerli olarak kabul edilmemesi gerektiğini unutmayın. Bu nedenle, geçici uyarıları kapatmanın en güvenli yolu:

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

[your "silenced" code]

options(warn = oldw)

41

printfAramaları warningşimdi C kodunda yapılan aramalarla değiştirdim . Yarın gece piyasada olması gereken 2.17.2 sürümünde etkili olacak. Sonra suppressWarnings()yukarıda belirtilen yöntemlerle veya bunlardan herhangi biri ile uyarıları önlemek gerekir .

suppressWarnings({ your code })

6
bunu yapmanın doğru yolu budur. Cevap olarak işaretlenmelidir.
Denis

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.