2013-05-20 8 views
6

में एक से अधिक चेकबॉक्स मूल्यों मैं इस प्रकार के रूप में परिभाषित एक साइड पैनल में चेक बॉक्स की एक श्रृंखला है, sidebarPanel एक के अंदर:हो रही चमकदार

sliderInput("days", 
       "Days to monitor:", 
       min = 1, 
       max = 50, 
       value = 5), 
    checkboxInput("display_CMC", "Carolinas Medical Center", TRUE), 
    checkboxInput("display_MariaParham", "Maria Parham", TRUE), 
    checkboxInput("display_WakeMed", "Wake Med", TRUE) 

मैं एक कार्यक्रम संबंधी रास्ते में एक चरित्र वेक्टर में उन परिणामों को बदलने के लिए करना चाहते हैं (उदाहरण के लिए यदि मेरे पास 'display_ नाम वाला चेकबॉक्स इनपुट था, तो मैं इसे परिणामों को स्वचालित रूप से पार्स करना चाहता हूं)। ऐसा करने के लिए, मैं करने की कोशिश की:

displayIdx <- grep("display_", names(input)) 
facilityCode_keep <- names(input)[ displayIdx ][ input[ displayIdx ] ] 

दुर्भाग्य से, कि में परिणाम:

Error: Single-bracket indexing of reactivevalues object is not allowed. 

दो सवाल:

  1. कैसे मैं एक चरित्र वेक्टर में checkboxInput रों की एक श्रृंखला को बदलने करते हैं?
  2. अस्वीकरण एकल ब्रैकेट अनुक्रमण के साथ क्या हो रहा है। मैं समझ सकता था कि क्या मैं input को असाइन करने का प्रयास कर रहा था, लेकिन मैं नहीं हूं।

उत्तर

9

मैं एक चरित्र वेक्टर में चेकबॉक्स इनपुट की एक श्रृंखला को कैसे बदलूं?

आप डबल-ब्रैकेट इंडेक्सिंग का उपयोग कर सकते हैं। लेकिन इस मामले में आप checkboxGroupInput फ़ंक्शन का उपयोग करने पर विचार कर सकते हैं, जो चयनित मानों का एक चरित्र वेक्टर देता है।

सिंगल-ब्रैकेट इंडेक्सिंग क्यों नहीं?

एकल-ब्रैकेट इंडेक्सिंग सबसेटिंग है, जबकि डबल-ब्रैकेट इंडेक्सिंग तत्व पुनर्प्राप्ति (या ऐसा कुछ) है। इनपुट ऑब्जेक्ट एक नामित वेक्टर की तरह मानचित्र/हैश/dict/पर्यावरण की तरह अधिक है, इसलिए सबसेटिंग वास्तव में समझ में नहीं आता है। (इसी तरह, आप आर की पर्यावरण वस्तुओं पर सिंगल-ब्रैकेट इंडेक्स नहीं कर सकते हैं, आप केवल डबल-ब्रैकेट इंडेक्स ही कर सकते हैं।)

+0

बिल्कुल सही, धन्यवाद! कोई विचार क्यों सिंगल-ब्रैकेट इंडेक्सिंग की अनुमति नहीं है? –

+1

एकल-ब्रैकेट इंडेक्सिंग सबसेटिंग है, जबकि डबल-ब्रैकेट इंडेक्सिंग तत्व पुनर्प्राप्ति (या ऐसा कुछ) है। 'इनपुट' ऑब्जेक्ट एक नामित वेक्टर की तरह मानचित्र/हैश/dict/पर्यावरण की तरह अधिक है, इसलिए सबसेटिंग वास्तव में समझ में नहीं आता है। (इसी तरह, आप आर की पर्यावरण वस्तुओं पर सिंगल-ब्रैकेट इंडेक्स नहीं कर सकते हैं, आप केवल डबल-ब्रैकेट इंडेक्स ही कर सकते हैं।) –

+0

वास्तव में जानकारीपूर्ण उत्तर के लिए धन्यवाद। मैंने इसे आपकी प्रतिक्रिया में जोड़ा है। –