हाँ, आप कर सकते हैं:
xx <- c(1,2,3)
yy <- c(1,2,3,4,5,6)
# zz is the sum of the two lengths
zz <- `+`(if(exists("xx")) length(xx), if(exists("yy")) length(yy))
#[1] 9
वस्तुओं है कि वाक्य रचना मान्य नहीं है कॉल करने के लिए नाम आप बैकटिक (`) या उद्धरणों में नाम संलग्न करने (" या ') की जरूरत है (जैसे समारोह +
परोक्ष कहा जाता हो जाता है कि यदि आप 1 + 2
की तरह कुछ करते हैं)।
भी देखें R Language Definition की धारा 3.1.4 :
Except for the syntax, there is no difference between applying an operator and calling a function. In fact, x + y can equivalently be written `+`(x, y). Notice that since ‘+’ is a non-standard function name, it needs to be quoted.
अपने कोड में आप त्रुटि मिलती है:
Error: unexpected ',' in "zz <- +(if(exists("xx")) length(xx),"
इसका कारण यह है कि आप (बाइनरी) समारोह "+"
, लेकिन एकल ऑपरेटर +
, जो समारोह तर्क उम्मीद नहीं है कॉल नहीं करते और इस प्रकार कोष्ठक को "अंकगणितीय" ऑपरेटर के रूप में व्याख्या करता है। उन लोगों के बीच एक अल्पविराम की अनुमति नहीं है।
बस '+' – akrun
'+' के बजाय 'sum' का उपयोग करें, वास्तव में एक ऐसा फ़ंक्शन है जिसे आपको टिक टिक जोड़ने की आवश्यकता है। –
हालांकि, 'if (मौजूद()) के साथ आपका निर्माण' + 'फ़ंक्शन कॉल के अंदर अपेक्षा की तरह काम नहीं करता है। कोशिश करें कि क्या होता है यदि कोई चर मौजूद नहीं है। आप मूल रूप से कुछ '1 + NULL' जैसे कुछ करते हैं। – Roland