शुरू करेंमुफ़्त में शुरू करें

R आर्ग्युमेंट्स को by value पास करता है

शीर्षक ही इशारा कर रहा है: R आर्ग्युमेंट्स को by value पास करता है. इसका मतलब क्या है? सरल शब्दों में, किसी R फंक्शन के अंदर आप जिस वैरिएबल को इनपुट देते हैं, उस वैरिएबल को वह फंक्शन बदल नहीं सकता. एक सरल उदाहरण देखते हैं (कंसोल में ट्राइ कीजिए):

triple <- function(x) {
  x <- 3*x
  x
}
a <- 5
triple(a)
a

triple() फंक्शन के अंदर, आर्ग्युमेंट x को उसकी वैल्यू के तीन गुना से ओवरराइट किया जाता है. इसके बाद यह नया x रिटर्न होता है. अगर आप इस फंक्शन को वैरिएबल a (जिसकी वैल्यू 5 है) के साथ कॉल करते हैं, तो 15 मिलता है. लेकिन क्या a की वैल्यू बदली? अगर R a को triple() में by reference पास करता, तो फंक्शन के अंदर x का ओवरराइड बाहर वाले वैरिएबल a तक पहुँच जाता. हालाँकि, R by value पास करता है, इसलिए आप जिन R ऑब्जेक्ट्स को फंक्शन में पास करते हैं, वे तब तक नहीं बदलते जब तक आप कोई explicit असाइनमेंट न करें. triple(a) कॉल करने के बाद भी a की वैल्यू 5 ही रहती है.

क्या आप बता सकते हैं कि नीचे दिए गए कोड के बारे में निम्न में से कौन-सा कथन गलत है?

increment <- function(x, inc = 1) {
  x <- x + inc
  x
}
count <- 5
a <- increment(count, 2)
b <- increment(count)
count <- increment(count, 2)

यह अभ्यास पाठ्यक्रम का हिस्सा है

इंटरमीडिएट R

पाठ्यक्रम देखें

इंटरैक्टिव व्यावहारिक अभ्यास

हमारे इंटरैक्टिव अभ्यासों में से किसी एक के साथ सिद्धांत को व्यवहार में बदलें

अभ्यास शुरू करें