วิธีการระงับคำเตือนทั่วโลกในสคริปต์ R


174

ฉันมีสคริปต์ R ยาวที่ทำให้เกิดคำเตือนซึ่งฉันสามารถเพิกเฉยได้ ฉันสามารถใช้

suppressWarnings(expr)

สำหรับคำสั่งเดียว แต่ฉันจะระงับคำเตือนใน R ทั่วโลกได้อย่างไร มีตัวเลือกสำหรับสิ่งนี้หรือไม่?

คำตอบ:


228

คุณสามารถใช้

options(warn=-1)

แต่โปรดทราบว่าการปิดข้อความเตือนทั่วโลกอาจไม่ใช่ความคิดที่ดี

หากต้องการเปิดคำเตือนอีกครั้งให้ใช้

options(warn=0)

(หรือสิ่งที่คุณตั้งไว้เพื่อwarnดูคำตอบนี้ )


5
ใช้งานได้ แต่วิธีการของ Francesco Napolitano จาก 22 กันยายน 2558 เป็นวิธีที่ปลอดภัยกว่าและใช้ทั่วโลกมากกว่า
Andy Clifton

ฉันเห็นด้วยกับ @Andy และคำตอบของเขาควรถูกทำเครื่องหมายว่าเป็นคำตอบที่ยอมรับได้
JASC

106

options(warn=-1)คุณต้องการ อย่างไรก็ตามโปรดทราบว่าwarn=0ไม่ใช่ระดับคำเตือนที่ปลอดภัยที่สุดและไม่ควรถือว่าเป็นระดับปัจจุบันโดยเฉพาะภายในสคริปต์หรือฟังก์ชั่น ดังนั้นวิธีที่ปลอดภัยที่สุดในการปิดการเตือนชั่วคราวคือ:

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

[your "silenced" code]

options(warn = oldw)

41

ฉันได้แทนที่การprintfโทรด้วยการโทรwarningเป็น C-code ทันที มันจะมีผลในเวอร์ชั่น 2.17.2 ซึ่งควรจะมีให้ในคืนพรุ่งนี้ จากนั้นคุณควรหลีกเลี่ยงคำเตือนด้วยsuppressWarnings()วิธีการใด ๆ ข้างต้น

suppressWarnings({ your code })

6
นี่เป็นวิธีที่ถูกต้องที่จะทำ ควรทำเครื่องหมายเป็นคำตอบ
เดนิส

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.