الگوریتم اول

لطفا صبر کنید...

توابع در R

در زبان برنامه‌نویسی R، توابع ابزاری بسیار مهم و پرکاربرد برای انجام عملیات مختلف هستند. توابع به شما این امکان را می‌دهند که کد خود را ساختارمندتر، خواناتر و قابل استفاده مجدد کنید. در اینجا به معرفی و نحوه استفاده از توابع در R پرداخته می‌شود.

۱. تعریف توابع در R

برای تعریف یک تابع در R از کلمه‌کلیدی ()function استفاده می‌کنیم. ساختار کلی تعریف یک تابع به شکل زیر است:

function_name <- function(arg1, arg2, ...) {
  # دستورات تابع
  result <- arg1 + arg2  # برای مثال عملیات جمع
  return(result)         # بازگشت نتیجه
}

در اینجا:

  • function_name نام تابع است.
  • arg1, arg2, و غیره پارامترهای ورودی تابع هستند.
  • return(result) مقداری است که تابع پس از اجرای دستوراتش به بیرون ارسال می‌کند.

نمونه:

# تعریف یک تابع ساده برای جمع دو عدد
sum_numbers <- function(a, b) {
  result <- a + b
  return(result)
}

# فراخوانی تابع
sum_numbers(3, 5)  # خروجی: 8

۲. توابع با پارامترهای پیش‌فرض

در R، می‌توانید مقادیر پیش‌فرض برای پارامترهای ورودی تابع مشخص کنید. این یعنی اگر هنگام فراخوانی تابع، آرگومانی برای یک پارامتر مشخص نکردید، مقدار پیش‌فرض آن استفاده خواهد شد.

نمونه:

# تابع با پارامتر پیش‌فرض
greet <- function(name="مهمان") {
  paste("سلام", name)
}

# فراخوانی تابع با پارامتر پیش‌فرض
greet()  # خروجی: "سلام مهمان"

# فراخوانی تابع با آرگومان مشخص
greet("علی")  # خروجی: "سلام علی"

۳. توابع با تعداد متغیر پارامترها

R به شما این امکان را می‌دهد که تعداد متغیر از پارامترها را به تابع ارسال کنید. این ویژگی با استفاده از ... به دست می‌آید. پارامتر ... می‌تواند تعداد نامحدودی آرگومان را دریافت کند.

نمونه:

# تابعی که تعداد نامحدودی از پارامترها را جمع می‌کند
sum_all <- function(...) {
  sum(c(...))  # جمع تمام پارامترها
}

# فراخوانی تابع با تعداد مختلف پارامترها
sum_all(1, 2, 3, 4)  # خروجی: 10
sum_all(5, 10, 15)   # خروجی: 30

۴. توابع بازگشتی (Recursive Functions)

توابع بازگشتی در R توابعی هستند که درون خودشان فراخوانی می‌شوند. این توابع معمولاً برای حل مسائل با تقسیم‌بندی به زیرمسائل مشابه استفاده می‌شوند.

نمونه:

# تابعی برای محاسبه فاکتوریل یک عدد
factorial <- function(n) {
  if (n == 0) {
    return(1)  # فاکتوریل 0 برابر با 1 است
  } else {
    return(n * factorial(n-1))  # فراخوانی بازگشتی
  }
}

# فراخوانی تابع
factorial(5)  # خروجی: 120

۵. توابع پیش‌ساخته در R

در R، بسیاری از توابع پیش‌ساخته وجود دارند که می‌توانید از آن‌ها برای انجام محاسبات و تحلیل‌های مختلف استفاده کنید. این توابع به صورت گسترده‌ای در علم داده و تحلیل‌های آماری کاربرد دارند.

نمونه‌ها:

  • ()mean برای محاسبه میانگین
  • ()sum برای جمع مقادیر
  • ()sd برای محاسبه انحراف معیار
  • ()lm برای مدل‌سازی خطی
  • ()plot برای رسم نمودار

نمونه:

# محاسبه میانگین
data <- c(10, 20, 30, 40, 50)
mean(data)  # خروجی: 30

# رسم نمودار
plot(data, type="o", col="blue")

۶. توابع و لیست‌ها

در R می‌توانید از توابع برای کار با ساختارهای داده‌ای مانند لیست‌ها استفاده کنید. به عنوان مثال، می‌توانید یک لیست را به تابع ارسال کرده و از آن داده‌ها را استخراج کنید.

نمونه:

# تعریف یک لیست
my_list <- list(name="Ali", age=25, scores=c(80, 90, 70))

# تابعی برای دسترسی به داده‌های لیست
get_age <- function(data_list) {
  return(data_list$age)
}

# فراخوانی تابع با ارسال لیست
get_age(my_list)  # خروجی: 25

۷. توابع در بسته‌های اضافی (Packages)

R دارای بسته‌های زیادی است که توابع خاص خود را دارند. برای استفاده از این توابع ابتدا باید بسته موردنظر را نصب کرده و سپس آن را بارگذاری کنید.

نصب و بارگذاری بسته:

# نصب بسته
install.packages("ggplot2")

# بارگذاری بسته
library(ggplot2)

پس از بارگذاری بسته، می‌توانید از توابع آن بسته استفاده کنید.

۸. توابع بدون بازگشت مقدار (Void Functions)

برخی از توابع در R برای انجام عملیاتی استفاده می‌شوند که نیازی به بازگشت مقدار ندارند. این توابع معمولاً برای نمایش نتایج یا ایجاد تغییرات در داده‌ها استفاده می‌شوند.

نمونه:

# تابعی برای نمایش پیامی در کنسول
print_message <- function(message) {
  print(message)
}

# فراخوانی تابع
print_message("سلام دنیا")  # خروجی: "سلام دنیا"

جمع‌بندی

توابع در زبان R ابزاری ضروری برای ساختاردهی و سازمان‌دهی کد هستند. آن‌ها به شما این امکان را می‌دهند که کد خود را ماژولار، خوانا و قابل استفاده مجدد کنید. با استفاده از توابع می‌توانید عملیات مختلف را به سادگی انجام داده و از امکانات قدرتمند زبان R بهره‌برداری کنید.