Cara menekan peringatan secara global dalam R Script

174

Saya memiliki skrip R panjang yang memberikan beberapa peringatan, yang dapat saya abaikan. Saya bisa menggunakan

suppressWarnings(expr)

untuk pernyataan tunggal. Tetapi bagaimana saya bisa menekan peringatan di R secara global? Apakah ada opsi untuk ini?

Richard
sumber

Jawaban:

229

Anda bisa menggunakannya

options(warn=-1)

Tetapi perhatikan bahwa mematikan pesan peringatan secara global mungkin bukan ide yang baik.

Untuk menghidupkan kembali peringatan, gunakan

options(warn=0)

(atau apa pun tujuan Anda warn, lihat jawaban ini )

sieste
sumber
5
Ini bekerja, tetapi pendekatan Francesco Napolitano dari 22 September 2015, adalah metode yang lebih aman dan lebih berlaku secara global.
Andy Clifton
Saya setuju dengan @Andy, dan jawabannya harus ditandai sebagai yang diterima.
JASC
106

Kamu ingin options(warn=-1). Namun, perhatikan bahwa warn=0itu bukan tingkat peringatan yang paling aman dan tidak boleh dianggap sebagai tingkat saat ini, terutama di dalam skrip atau fungsi. Dengan demikian cara teraman untuk mematikan peringatan adalah:

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

[your "silenced" code]

options(warn = oldw)
Francesco Napolitano
sumber
41

Saya telah mengganti printfpanggilan dengan panggilan ke warningdalam C-code sekarang. Ini akan efektif dalam versi 2.17.2 yang akan tersedia besok malam. Maka Anda harus dapat menghindari peringatan dengan suppressWarnings()atau metode lain yang disebutkan di atas.

suppressWarnings({ your code })
Bernd Fischer
sumber
6
ini cara yang benar untuk melakukannya. Harus ditandai sebagai jawabannya.
Denis
8

Lihat ?optionsdan gunakan warn:

options( warn = -1 )
Simon O'Hanlon
sumber