NA

2013-02-03 9 views
5

का उत्पादन करके एक त्रुटि पकड़ें मैं कोड प्राप्त करने के बजाए एक त्रुटि त्रुटि देता है जब मैं एनए प्राप्त करना चाहता हूं।NA

मैं वर्तमान में

try.test<-try(results<-lm(log(0)~1)) 
if(class(try.test)=="try-error"){results<-NA} 

का उपयोग मैं भी tryCatch के साथ खेल की कोशिश की।

मैं एक एकल फ़ंक्शन/लाइन समाधान ढूंढना चाहता हूं।

उत्तर

12

result <- tryCatch(lm(log(0)~1), error=function(err) NA) 

प्रयास करें लेकिन यह सब त्रुटियों पकड़ता ही नहीं, लॉग से उन (0)।

4

उत्तम दर्जे का, लेकिन आपकी समस्या को हल करने के समान रूप से कम तरीका।

results <- NA 
try(results<-lm(log(0)~1), silent = TRUE) 

यदि आप त्रुटियों को संभालने के लिए एक शानदार तरीका ढूंढ रहे हैं, तो मैं एक मोनैड की अवधारणा को देखने की सलाह देता हूं; इन संरचनाओं का उपयोग करके "if (! na (x)) ...." आपकी स्क्रिप्ट में बॉयलरप्लेट की मात्रा कम हो जाती है।

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