यदि / जबकि (स्थिति) में त्रुटि {: लापता मूल्य जहां TRUE / FALSE की आवश्यकता है


159

मुझे यह त्रुटि संदेश प्राप्त हुआ:

Error in if (condition) { : missing value where TRUE/FALSE needed

या

Error in while (condition) { : missing value where TRUE/FALSE needed

इसका क्या मतलब है, और मैं इसे कैसे रोकूं?


5
डबल बराबर ऑपरेटर NAकिसी भी तरफ बर्दाश्त नहीं कर सकता । अगर मैं परिभाषित करता हूं: x = NAऔर फिर एक if (x == NA){ ... }त्रुटि करते हैं तो यह त्रुटि रनटाइम पर फेंक दी जाएगी जब पार्सर दोहरे पंखों के बाएं हाथ की जांच करता है। इस त्रुटि को मापने के लिए, सुनिश्चित करें कि आपके सशर्त में प्रत्येक चर NA का उपयोग नहीं कर रहा है is.na(your_variable)
एरिक लेसिंसकी

जवाबों:


203

मूल्यांकन का conditionपरिणाम है NAifसशर्त है या तो एक चाहिए TRUEया FALSEपरिणाम है।

if (NA) {}
## Error in if (NA) { : missing value where TRUE/FALSE needed

यह गणना के परिणामों के रूप में गलती से हो सकता है:

if(TRUE && sqrt(-1)) {}
## Error in if (TRUE && sqrt(-1)) { : missing value where TRUE/FALSE needed

यह जांचने के लिए कि क्या कोई वस्तु उपयोग करने के is.na(x)बजाय गायब है x == NA


संबंधित त्रुटियों को भी देखें:

यदि / जबकि (स्थिति) में त्रुटि {: तर्क लंबाई शून्य का है

अगर / जबकि (स्थिति) में त्रुटि: तर्क तार्किक के रूप में व्याख्या करने योग्य नहीं है

if (NULL) {}
## Error in if (NULL) { : argument is of length zero

if ("not logical") {}
## Error: argument is not interpretable as logical

if (c(TRUE, FALSE)) {}
## Warning message:
## the condition has length > 1 and only the first element will be used

10

मैं इस में भाग गया जब एक अशक्त या खाली स्ट्रिंग पर जाँच कर रहा था

if (x == NULL || x == '') {

इसे बदल दिया

if (is.null(x) || x == '') {

1
फी, वहाँ भी है!(length(x) == 1L && nzchar(x))
फ्रैंक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.