shiny
पैकेज की जाँच कि चर दोनों उपलब्ध है और मान्य हैं के लिए सुविधाजनक कार्यों validate()
और need()
प्रदान करता है। need()
एक अभिव्यक्ति का मूल्यांकन करता है। अगर अभिव्यक्ति वैध नहीं है, तो एक त्रुटि संदेश लौटाया जाता है। अगर अभिव्यक्ति मान्य है, NULL
वापस आ गया है। कोई यह जांचने के लिए इसका उपयोग कर सकता है कि कोई चर मान्य है या नहीं। अधिक जानकारी के लिए ?need
देखें।
मैं इस तरह एक समारोह निर्धारित करने की सलाह:
is.valid <- function(x) {
require(shiny)
is.null(need(x, message = FALSE))
}
इस समारोह is.valid()
वापस आ जाएगी FALSE
अगर x
FALSE
है, NULL
, NA
, NaN
, एक खाली स्ट्रिंग ""
, एक खाली परमाणु वेक्टर, एक वेक्टर केवल युक्त गुम मूल्य, एक तार्किक वेक्टर जिसमें केवल FALSE
है, या वर्ग try-error
की एक वस्तु है। अन्य सभी मामलों में, यह TRUE
देता है।
इसका मतलब है, need()
(और is.valid()
) विफलता मामलों की एक विस्तृत श्रृंखला को शामिल करता है।लेखन के बजाय:
if (!is.null(x) && !is.na(x) && !is.nan(x)) {
...
}
एक बस लिख सकते हैं:
if (is.valid(x)) {
...
}
वर्ग
try-error
के लिए चेक के साथ
, यह भी एक try()
ब्लॉक के साथ संयोजन के रूप में इस्तेमाल किया जा सकता चुपचाप त्रुटियों को पकड़ने के लिए: (https://csgillespie.github.io/efficientR/programming.html#communicating-with-the-user देखें)
bad = try(1 + "1", silent = TRUE)
if (is.valid(bad)) {
...
}
एक उपलब्ध कहां से आता है? क्या यह एक वेक्टर में एक तत्व है, एक समारोह के लिए एक वैश्विक या गैर वेक्टर तर्क? मेरे पास और सुझाव हो सकते हैं। –
शायद 'मौजूद' है जो आप देख रहे हैं –
के बारे में हैरान की टिप्पणी 'अस्तित्व' के बारे में नीचे देखें ... –