آموزش توابع در برنامه نویسی R

رتبه: 5 ار 1 رای SSSSS
توابع
نویسنده: تیم تولید محتوا زمان مطالعه 1 دقیقه

یک تابع؛ مجموعه ای از دستورات است که برای انجام یک وظیفه ی خاص؛ در کنار هم سازماندهی شده اند. زبان برنامه نویسی R تعداد زیادی تابع داخلی دارد و کاربر می تواند توابع خود را نیز ایجاد کند.

در زبان برنامه نویسی R، یک تابع در واقع یک شیء است؛ به صورتی که مفسر R قادر است کنترل را همراه با آرگومان هایی که ممکن است برای آن که تابع بتواند اقدامات مربوطه را انجام بدهد؛ ضروری باشد؛ به تابع منتقل کند.

تابع به نوبه خود، وظایف مربوط به خودش را انجام می دهد و کنترل و نیز هر نتیجه ای که ممکن است در اشیاء دیگر ذخیره بشود را به مفسر منتقل می کند.

تعریف تابع

یک تابع R با استفاده از کلید واژه function ایجاد شده است. سینتکس پایه ی تعریف تابع R به صورت زیر می باشد:

function_name <- function(arg_1, arg_2, …) {

Function body

}

مؤلفه های تابع

بخش های متفاوت یک تابع به صورت زیر هستند:

  • نام تابع – این نام واقعی تابع است. در محیط R به عنوان یک شیء با این نام ذخیره می شود.
  • آرگومان ها – یک آرگومان در واقع یک پلیس هولدر است. زمانی که یک تابع فراخوانی می شود؛ شما یک مقدار را به یک آرگومان منتقل می کنید. آرگومان ها اختیاری هستند؛ یعنی یک تابع ممکن است هیچ آرگومانی را شامل نشود. همچنین آرگومان ها می توانند مقادیر پیش فرضی داشته باشند.
  • بدنه تابع – بدنه تابع شامل مجموعه ای از عبارت ها است که تعریف می کند که تابع چه کاری انجام می دهد.
  • مقدار بازگشتی – مقدار بازگشتی یک تابع؛ آخرین عبارت در بدنه تابع است که باید ارزیابی شود.

زبان برنامه نویسی R توابع درونی بسیار زیادی دارد که می توان مستقیماً آنها را در برنامه فراخوانی کرد؛ بدون این که آنها را ابتدا تعریف نمود. ما همچنین می توانید توابع خودمان را ایجاد کنیم که از آنها به عنوان توابع تعریف شده توسط کاربر (user defined) یاد می شود.

توابع درونی

مثال های ساده ای از توابع داخلی ()seq()، max()، sum و (…)paste و غیره هستند. آنها مستقیماً توسط برنامه هایی که کاربر می نویسد؛ فراخوانی می شود. شما می توانید با استفاده از توابع R، اغلب تابع هایی که در R استفاده می شوند را مشاهده کنید.

# Create a sequence of numbers from 32 to 44.

print(seq(32,44))

# Find mean of numbers from 25 to 82.

print(mean(25:82))

# Find sum of numbers frm 41 to 68.

print(sum(41:68))

زمانی که کد بالا را اجرا می کنیم؛ نتایج زیر حاصل می شود:

[۱] ۳۲ ۳۳ ۳۴ ۳۵ ۳۶ ۳۷ ۳۸ ۳۹ ۴۰ ۴۱ ۴۲ ۴۳ ۴۴

[۱] ۵۳٫۵

[۱] ۱۵۲۶

توابع تعریف شده توسط کاربر

ما می توانیم از توابع تعریف شده توسط کاربر در 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)

}

}

فراخوانی یک تابع

# Create a function to print squares of numbers in sequence.

new.function <- function(a) {

for(i in 1:a) {

b <- i^2

print(b)

}

}

# Call the function new.function supplying 6 as an argument.

new.function(6)

زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر ایجاد می شود:

[۱] ۱

[۱] ۴

[۱] ۹

[۱] ۱۶

[۱] ۲۵

[۱] ۳۶

فراخوانی یک تابع بدون آرگومان

# Create a function without an argument.

new.function <- function() {

for(i in 1:5) {

print(i^2)

}

}

# Call the function without supplying an argument.

new.function()

زمانی که کد بالا را اجرا می نماییم؛ نتیجه زیر حاصل می شود:

[۱] ۱

[۱] ۴

[۱] ۹

[۱] ۱۶

[۱] ۲۵

فراخوانی یک تابع با مقادیر آرگومان (توسط موقعیت و نام)

آرگومان ها برای فراخوانی یک تابع را می توان در ادامه عبارتی که تابع تعریف می شود؛ بیان کرد. همچنین می توان آنها را در یک توالی جداگانه بیان کرد اما باید آن را به نام های آرگومان ها تخصیص داد.

# Create a function with arguments.

new.function <- function(a,b,c) {

result <- a * b + c

print(result)

}

# Call the function by position of arguments.

new.function(5,3,11)

# Call the function by names of the arguments.

new.function(a = 11, b = 5, c = 3)

زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر حاصل می شود:

[۱] ۲۶

[۱] ۵۸

فراخوانی یک تابع با آرگومان پیش فرض

ما می توانیم مقدار آرگومان ها را در تعریف تابع بیان کنیم و تابع را بدون ارائه ی هر آرگومانی فراخوانی کنیم تا به نتایج پیش فرش دست یابیم. اما ما می توانیم برخی توابع را با ارائه ی مقادیر جدید آرگومان ها فراخوانی کنیم و به نتایج غیر پیش فرض دست یابیم.

# Create a function with arguments.

new.function <- function(a = 3, b = 6) {

result <- a * b

print(result)

}

# Call the function without giving any argument.

new.function()

# Call the function with giving new values of the argument.

new.function(9,5)

زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر حاصل می شود:

[۱] ۱۸

[۱] ۴۵

ارزیابی تنبل تابع

اصطلاحاً گفته می شود که ارزیابی آرگومانها برای توابع، تنبلانه انجام می شود به صورتی که فقط زمانی ارزیابی صورت می گیرد که توسط بدنه تابع مورد نیاز باشد.

# Create a function with arguments.

new.function <- function(a, b) {

print(a^2)

print(a)

print(b)

}

# Evaluate the function without supplying one of the arguments.

new.function(6)

زمانی که مد بالا را اجرا می کنیم؛ نتایج زیر حاصل می شود:

[۱] ۳۶

[۱] ۶

Error in print(b) : argument “b” is missing, with no default

profile name
تیم تولید محتوا

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

مطالب پیشنهادی برای شما

دیدگاهتان را بنویسید

1 2 3 4 5

1 نظر درباره «آموزش توابع در برنامه نویسی R»

  • Mazaheri
    Mazaheri آیا این دیدگاه مفید بود ؟

    سلام من می‌خوام تابعی تعریف کنم که داخلش از حروف یونانی و تووابع یونانی استفاده میشه..چطور باید تعریفش کنم؟

    پاسخ
مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید