सामान्य तौर पर इस त्रुटि संदेश का अर्थ है कि आपने किसी फ़ंक्शन पर अनुक्रमण का उपयोग करने का प्रयास किया है। उदाहरण के लिए, आप इस त्रुटि संदेश को पुन: उत्पन्न कर सकते हैं
mean[1]
## Error in mean[1] : object of type 'closure' is not subsettable
mean[[1]]
## Error in mean[[1]] : object of type 'closure' is not subsettable
mean$a
## Error in mean$a : object of type 'closure' is not subsettable
त्रुटि संदेश में वर्णित क्लोजर (शिथिल) फ़ंक्शन और पर्यावरण है जो फ़ंक्शन को कॉल करने पर चर को संग्रहीत करता है।
इस विशिष्ट मामले में, जैसा कि यहोशू ने उल्लेख किया है, आप urlफ़ंक्शन को एक चर के रूप में एक्सेस करने की कोशिश कर रहे हैं । यदि आप नामित चर को परिभाषित करते हैं url, तो त्रुटि दूर हो जाती है।
अच्छे अभ्यास के रूप में, आपको आमतौर पर बेस-आर कार्यों के बाद नामकरण चर से बचना चाहिए। (चर dataको कॉल करना इस त्रुटि का एक सामान्य स्रोत है।)
ऑपरेटर या कीवर्ड को कम करने की कोशिश करने के लिए कई संबंधित त्रुटियाँ हैं।
`+`[1]
## Error in `+`[1] : object of type 'builtin' is not subsettable
`if`[1]
## Error in `if`[1] : object of type 'special' is not subsettable
यदि आप इस समस्या में भाग ले रहे हैं shiny, तो सबसे संभावित कारण यह है कि आप reactiveइसे बिना किसी कोष्ठक का उपयोग किए फ़ंक्शन के रूप में बुलाए बिना एक अभिव्यक्ति के साथ काम करने की कोशिश कर रहे हैं ।
library(shiny)
reactive_df <- reactive({
data.frame(col1 = c(1,2,3),
col2 = c(4,5,6))
})
हालांकि हम अक्सर चमकदार में प्रतिक्रियाशील अभिव्यक्तियों के साथ काम करते हैं जैसे कि वे डेटा फ़्रेम थे, वे वास्तव में फ़ंक्शंस हैं जो डेटा फ़्रेम (या अन्य ऑब्जेक्ट) लौटाते हैं।
isolate({
print(reactive_df())
print(reactive_df()$col1)
})
col1 col2
1 1 4
2 2 5
3 3 6
[1] 1 2 3
लेकिन अगर हम इसे कोष्ठक के बिना कम करने की कोशिश करते हैं, तो हम वास्तव में एक फ़ंक्शन को अनुक्रमित करने की कोशिश कर रहे हैं, और हमें एक त्रुटि मिलती है:
isolate(
reactive_df$col1
)
Error in reactive_df$col1 : object of type 'closure' is not subsettable
[]इसके बजाय टाइप करते हैं()!