Functions in R | R में फ़ंक्शन्स


R में फ़ंक्शन्स (Functions in R)

परिचय

R प्रोग्रामिंग भाषा में फ़ंक्शन्स (Functions) एक बहुत ही महत्वपूर्ण भूमिका निभाते हैं। किसी भी बड़े प्रोग्राम को छोटे, पुन: उपयोग योग्य (Reusable) ब्लॉक्स में विभाजित करने के लिए फ़ंक्शन्स का उपयोग किया जाता है। फ़ंक्शन हमें कोड को सुव्यवस्थित, पढ़ने योग्य, और बनाए रखने योग्य बनाता है।

R में लगभग हर कार्य फ़ंक्शन के माध्यम से किया जाता है — चाहे वह गणना हो, डेटा लोड करना हो, या ग्राफ़ बनाना हो। R में हजारों इनबिल्ट फ़ंक्शन्स हैं और यूज़र अपने खुद के फ़ंक्शन्स भी बना सकते हैं।

R में फ़ंक्शन की परिभाषा

R में एक फ़ंक्शन को निम्नलिखित सिंटैक्स द्वारा परिभाषित किया जाता है:

function_name <- function(arguments) {
   # Function Body
   # Return Value
}

उदाहरण:

add_numbers <- function(a, b) {
   result <- a + b
   return(result)
}

add_numbers(5, 10)

इस उदाहरण में, `add_numbers()` नाम का एक फ़ंक्शन बनाया गया है जो दो संख्याओं को जोड़कर परिणाम लौटाता है।

फ़ंक्शन के मुख्य घटक

  • फ़ंक्शन का नाम (Function Name): जैसे sum(), mean(), या user-defined नाम।
  • Arguments: इनपुट मान जो फ़ंक्शन को पास किए जाते हैं।
  • Body: कोड ब्लॉक जिसमें कार्य लिखा होता है।
  • Return Statement: फ़ंक्शन के आउटपुट को लौटाता है।

R में इनबिल्ट फ़ंक्शन्स

R में कई सामान्य कार्यों के लिए इनबिल्ट फ़ंक्शन्स होते हैं:

# Mean and Sum
mean(c(10, 20, 30, 40))
sum(c(1, 2, 3, 4))

# Sequence
seq(1, 10, by = 2)

# Sorting
sort(c(8, 2, 4, 9, 1))

# Mathematical
sqrt(16)
log(10)
exp(2)

यूज़र-परिभाषित फ़ंक्शन्स (User-defined Functions)

यूज़र अपनी आवश्यकता के अनुसार फ़ंक्शन बना सकता है।

# Example: Check Even or Odd
check_number <- function(num) {
  if(num %% 2 == 0) {
    return('Even')
  } else {
    return('Odd')
  }
}

check_number(11)

डिफ़ॉल्ट आर्ग्युमेंट्स (Default Arguments)

R में किसी फ़ंक्शन के आर्ग्युमेंट्स को डिफ़ॉल्ट मान भी दिया जा सकता है।

power <- function(x, y = 2) {
  return(x ^ y)
}

power(4)
power(4, 3)

यहाँ यदि y नहीं दिया गया तो उसका मान 2 माना जाएगा।

एनोनिमस (Anonymous) या लैम्ब्डा फ़ंक्शन्स

कभी-कभी हमें छोटे एक-लाइन फ़ंक्शन्स की आवश्यकता होती है जिन्हें नाम दिए बिना बनाया जा सकता है। इन्हें Anonymous Functions कहा जाता है।

sapply(1:5, function(x) x^2)

यह प्रत्येक संख्या का वर्ग लौटाएगा।

नेस्टेड फ़ंक्शन्स (Nested Functions)

एक फ़ंक्शन के अंदर दूसरा फ़ंक्शन भी बनाया जा सकता है।

outer_function <- function(a, b) {
   inner_function <- function(x, y) {
     return(x * y)
   }
   return(inner_function(a, b))
}

outer_function(3, 4)

फ़ंक्शन से कई मान लौटाना

R में आप एक लिस्ट या वेक्टर के रूप में कई मान वापस कर सकते हैं।

calculate_stats <- function(x) {
   total <- sum(x)
   avg <- mean(x)
   return(list(Total = total, Average = avg))
}

result <- calculate_stats(c(10, 20, 30))
result$Total
result$Average

एनवायरनमेंट और स्कोप (Environment & Scope)

R में वेरिएबल्स का स्कोप दो प्रकार का होता है:

  • Local Scope: फ़ंक्शन के अंदर बनाए गए वेरिएबल्स केवल उसी फ़ंक्शन के अंदर मान्य होते हैं।
  • Global Scope: फ़ंक्शन के बाहर बनाए गए वेरिएबल्स को हर जगह एक्सेस किया जा सकता है।
x <- 10
test <- function() {
   x <- 5
   print(x)
}
test()  # Output: 5
print(x) # Output: 10

Recursive Functions (पुनरावर्ती फ़ंक्शन्स)

R में फ़ंक्शन्स स्वयं को कॉल कर सकते हैं, जिसे Recursion कहते हैं।

factorial <- function(n) {
   if(n == 0)
      return(1)
   else
      return(n * factorial(n - 1))
}
factorial(5)

वास्तविक उपयोग (Practical Use Cases)

  • डेटा क्लीनिंग के लिए कस्टम फ़ंक्शन बनाना।
  • सांख्यिकीय विश्लेषण में औसत, माध्य, विचलन निकालने वाले फ़ंक्शन्स।
  • डेटा विज़ुअलाइज़ेशन के लिए यूज़र डिफ़ाइंड ग्राफ़ फ़ंक्शन।
  • Simulation और Modeling Functions।

निष्कर्ष

R में फ़ंक्शन्स प्रोग्रामिंग को मॉड्यूलर और पुन: उपयोग योग्य बनाते हैं। इनकी सहायता से बड़े और जटिल विश्लेषणात्मक कार्यों को छोटे और समझने योग्य टुकड़ों में बाँटा जा सकता है। फ़ंक्शन्स के सही उपयोग से कोड अधिक कुशल, पढ़ने योग्य और त्रुटि-मुक्त बनाया जा सकता है।

Related Post