توابع در R
تابع مجموعه ای از عبارات است که با هم برای انجام یک کار خاص سازماندهی شده اند. R تعداد زیادی توابع داخلی دارد و کاربر می تواند توابع خود را ایجاد کند.در R، یک تابع یک شی است، بنابراین مفسر R می تواند کنترل را به همراه آرگومان هایی که ممکن است برای انجام عملکردها برای تابع ضروری باشد، به تابع منتقل کند. تابع به نوبه خود وظیفه خود را انجام می دهد و کنترل را به مفسر و همچنین هر نتیجه ای که ممکن است در اشیاء دیگر ذخیره شود برمی گرداند.
تعریف تابع
نحوه تعریف تابع به شکل زیر است:
function_name <- function(arg_1, arg_2, …) {Function body}
اجزای تابع
قسمت های مختلف یک تابع:
نام تابع – این نام واقعی تابع است. در محیط R به عنوان یک شی با این نام ذخیره می شود.
آرگومان ها – آرگومان یک مکان نگهدار است. هنگامی که یک تابع فراخوانی می شود، یک مقدار به آرگومان ارسال می کنید. آرگومان ها اختیاری هستند. یعنی یک تابع ممکن است هیچ آرگومانی نداشته باشد. همچنین آرگومان ها می توانند مقادیر پیش فرض داشته باشند.
بدنه تابع – بدنه تابع شامل مجموعه ای از عبارات است که مشخص می کند تابع چه کاری انجام می دهد.
مقدار بازگشتی – مقدار بازگشتی یک تابع آخرین عبارت در بدنه تابع است که باید ارزیابی شود.
دستور return در یک تابع مورد نیاز نیست، اما توصیه می شود زمانی که تابع چندین محاسبات را انجام می دهد یا زمانی که می خواهید مقدار (و نه شی حاوی آن!) در خارج از بدنه تابع قابل دسترسی باشد، از آن استفاده کنید.
R توابع داخلی زیادی دارد که می توان آنها را مستقیماً در برنامه فراخوانی کرد بدون اینکه ابتدا آنها را تعریف کنید. ما همچنین می توانیم توابع خود را که به عنوان توابع تعریف شده توسط کاربر نامیده می شوند ایجاد و استفاده کنیم.
Built in function
نمونه های ساده توابع داخلی عبارتند از seq()، mean()، max()، sum(x) و paste() و غیره. آنها مستقیماً توسط برنامه های نوشته شده توسط کاربر فراخوانی می شوند.
User-defined function
ما میتوانیم توابع تعریفشده توسط کاربر را در R ایجاد کنیم. آنها به خواستههای کاربر اختصاص دارند و پس از ایجاد میتوانند مانند توابع داخلی استفاده شوند. در زیر مثالی از نحوه ایجاد و استفاده از یک تابع آورده شده است.
# Create a function to print squares of numbers in sequence.
new.function <- function(a) {
for(i in 1:a) {
b <- i^2
print(b)
}
}
هر زمان که یک بلوک کد را بیش از دو بار کپی و جایگذاری کردید، باید یک تابع بنویسید (یعنی اکنون سه کپی از همان کد دارید).
مهم است که به یاد داشته باشید که توابع فقط برای رایانه نیستند، بلکه برای انسان نیز هستند. R اهمیتی نمیدهد که عملکرد شما چه نامیده میشود یا چه نظراتی در آن وجود دارد، اما اینها برای خوانندگان انسانی مهم هستند.
نام یک تابع مهم است. در حالت ایدهآل، نام تابع شما کوتاه خواهد بود، اما به وضوح آنچه را که تابع انجام میدهد تداعی میکند. سخت است! اما بهتر است واضح باشد تا کوتاه، زیرا تکمیل خودکار RStudio تایپ نام های طولانی را آسان می کند.
برای نمونه به تابع زیر دقت کنید:
pow <- function(x, y) {
# function to print x raised to the power y
result <- x^y
print(paste(x,”raised to the power”, y, “is”, result))
}
در اینجا تابعی به نام pow() ایجاد کردیم.
مطالعات بیشتر در بخش راهنمای علمی سایت
کاراموزی های بیشتر در بخش کاراموزی های سایت