2011-04-21 5 views
5

मुझे विकल्प सेट करें (चेतावनी = 2)। ट्रिगर होने पर मुझे चेतावनी के बारे में जागरूकता की आवश्यकता होती है और निष्पादन को रोकना पसंद करता है। उस ने कहा, कुछ मामलों में एक चेतावनी की उम्मीद है और कार्यक्रम निष्पादन जारी रखना चाहिए। TryCatch() का उपयोग करके त्रुटि को सही ढंग से जालता है, हालांकि परिणामी डेटा उपलब्ध नहीं है।आर - कुछ परिदृश्यों में चेतावनी पर त्रुटि को अनदेखा करें, परिणाम

यहाँ एक ठोस उदाहरण है: tryCatch में

x = c(1,2,3,4,5,6) 
y = c(1,1,1,0,0,0) 
result = glm(y~x , family = binomial(link = "logit")) 

रैपिंग GLM(), परिणाम तैयार नहीं हुआ है। यह समझ में आता है क्योंकि ग्लैम की चेतावनी को वापस आने का मौका मिलने से पहले एक त्रुटि में परिवर्तित कर दिया जाता है। क्या इस परिदृश्य में सबसे अच्छा अभ्यास है? क्या यह केवल glm कॉल से पहले विकल्प (चेतावनी = 0) सेट करने के लिए है और फिर कॉल के बाद पुनर्स्थापित करें? या क्या एक बेहतर पैटर्न है?

मुझे यकीन है कि मैं यही करना चाहता हूं। चेतावनियों के लिए कोई मानक नहीं है। कभी-कभी एक चेतावनी तुच्छ होती है जबकि दूसरी बार यह काफी गंभीर है। यही कारण है कि मैं चेतावनियों को डिफ़ॉल्ट रूप से त्रुटियों में परिवर्तित करता हूं। फिर भी, मुझे कुछ स्थितियों में चेतावनियों को अनदेखा करने की क्षमता की आवश्यकता है जहां मैं बिल्कुल निश्चित हूं कि मैं चेतावनी को अनदेखा कर सकता हूं। उन मामलों में, मुझे परिणाम चाहिए!

संपादित
यहाँ कोशिश पकड़ है:

tryCatch( { result = glm(y~x , family = binomial(link = "logit")) } , error = function(e) { print("test") }) 
+0

क्या आप कोशिश की गई 'tryCatch' ब्लॉक' प्रदान कर सकते हैं? –

+0

@ जोशुआ - मूल पोस्ट में संपादित के रूप में जोड़ा गया। क्या मैं tryCatch अनुचित तरीके से उपयोग कर रहा हूँ? – SFun28

+0

मुझे यकीन नहीं है; मैंने सोचा कि यह दूसरों की आपकी मदद कर सकता है। एफडब्ल्यूआईडब्ल्यू, मुझे लगता है कि 'suppressWarnings' शायद आप जो खोज रहे हैं। –

उत्तर

7

प्रयास करें suppressWarnings()

http://stat.ethz.ch/R-manual/R-patched/library/base/html/warning.html

x = c(1,2,3,4,5,6) 
y = c(1,1,1,0,0,0) 
result = suppressWarnings(glm(y~x , family = binomial(link = "logit"))) 
result 

Call: glm(formula = y ~ x, family = binomial(link = "logit")) 

Coefficients: 
(Intercept)   x 
     165.32  -47.23 

Degrees of Freedom: 5 Total (i.e. Null); 4 Residual 
Null Deviance:  8.318 
Residual Deviance: 2.215e-10 AIC: 4 

संपादित करें 1 =========== =======================

यदि आप बाद में अपने कोड में उपरोक्त glm() कथन से त्रुटि दिखाना चाहते हैं, तो आप warnings() कथन जोड़ सकते हैं।

stoerr <- warnings() 
stoerr 

Warning message: 
glm.fit: fitted probabilities numerically 0 or 1 occurred 
+0

यह काम किया !!! मैं @ जोशा को बंद करने से पहले tryCatch पर प्रतिक्रिया देने का इंतजार करूंगा। – SFun28

+0

@ SFun28: यदि आप अभी भी त्रुटि दिखाना चाहते हैं, तो चेतावनियां जोड़ें() जहां भी आप त्रुटि दिखाना चाहते हैं। –

+0

आपकी आखिरी टिप्पणी का पालन नहीं किया था। suppressWarnings केवल निहित कोड दबाएगा, है ना? – SFun28

संबंधित मुद्दे