मैं लोकप्रिय data.table
पैकेज पर आया हूं और विशेष रूप से मुझे एक चीज है। यह एक में जगह असाइनमेंट ऑपरेटर अगर आप data.table
पैकेज लोड नहीं कियाक्यों है: = एक इंफिक्स ऑपरेटर के रूप में अनुमति दी?
:=
इस आधार आर वास्तव में में परिभाषित नहीं है, यह एक त्रुटि उठाया है | अगर आप इसे इस्तेमाल किया की कोशिश की थी है (उदाहरण के लिए , a := 2
) संदेश के साथ:
Error: could not find function
":="
इसके अलावा, क्यों :=
काम करता है? क्यों आपको :=
को इंफिक्स ऑपरेटर के रूप में परिभाषित करने देता है जबकि प्रत्येक अन्य इंफिक्स फ़ंक्शन को %%
से घिरा होना चाहिए, उदा।
`:=` <- function(a, b) {
paste(a,b)
}
"abc" := "def"
जाहिर है यह इन्फ़िक्स कार्यों को परिभाषित करने के लिए %function.name%
के लिए एक विकल्प वाक्य रचना होना नहीं है। data.table
आर के कुछ पार्सिंग quirks का शोषण कर रहा है? क्या यह एक हैक है? क्या भविष्य में यह "पैच" होगा?
कृपया पूछे जाने वाले प्रश्नों के साथ डेटाटेबल दस्तावेज पर नज़र डालें। –
@DirkEddelbuettel। मैं समझता हूं कि इसका उपयोग डेटा.table में कैसे किया जाता है। लेकिन तथ्य यह है कि आर ऐसे ऑपरेटर को परिभाषित करने की अनुमति देता है और सिंटैक्स त्रुटि का कारण नहीं है जो मुझे चिंतित करता है। यह आर के बारे में एक मूलभूत सवाल है और शायद यह कोड को कैसे पार करता है। – xiaodai
AFAIK यह डेटा.table के लिए स्थानीय है और केवल '[' सबसेटिंग के साथ काम करता है। तो आपका प्रश्न ऑफ-बेस (आर आर क्विर्क नहीं) है, इसलिए मैंने आपको डेटाटेबल डॉक्स पर भेजा है * जो इस पर चर्चा करता है *। –