Functions তৈরি এবং ব্যবহার
R প্রোগ্রামিং ভাষায় Functions একটি শক্তিশালী বৈশিষ্ট্য যা কোড পুনঃব্যবহারযোগ্যতা এবং সুসংগঠিত কোড লেখার জন্য ব্যবহৃত হয়। একটি function হল একটি ব্লক যা একটি নির্দিষ্ট কাজ সম্পাদন করে এবং যেকোনো স্থানে পুনরায় ব্যবহার করা যেতে পারে। এর মাধ্যমে কোডের পুনরাবৃত্তি কমানো যায় এবং কোড পরিষ্কার ও দক্ষ হয়।
১. Function তৈরি করা (Creating Functions)
R-এ একটি function তৈরি করতে function() ফাংশনটি ব্যবহার করা হয়। একটি function সাধারণত তিনটি অংশে বিভক্ত:
- Function Name: ফাংশনের নাম যা আপনি কল করবেন।
- Arguments: ফাংশনে প্রেরিত মান (parameters)।
- Body: ফাংশনের কোড, যা কার্যকরী কাজ করে এবং যে মানটি রিটার্ন করবে।
সাধারণ সিনট্যাক্স:
function_name <- function(arg1, arg2, ...) {
# Function body
# কোড যা আপনি রান করতে চান
return(result)
}উদাহরণ: সহজ একটি ফাংশন
# একটি সাধারণ ফাংশন তৈরি
add_numbers <- function(a, b) {
sum <- a + b
return(sum)
}
# ফাংশন কল করা
result <- add_numbers(3, 5)
print(result) # এটি ৮ প্রিন্ট করবেএখানে add_numbers একটি ফাংশন যা দুটি আর্গুমেন্ট (a এবং b) গ্রহণ করে এবং তাদের যোগফল (sum) রিটার্ন করে।
২. Return Keyword
R ফাংশনে return() ফাংশনটি ব্যবহৃত হয় ফাংশনের আউটপুট রিটার্ন করার জন্য। যদি return() না দেওয়া হয়, তবে ফাংশন শেষ হওয়ার পরে শেষ মূল্য (last evaluated expression) স্বয়ংক্রিয়ভাবে রিটার্ন হয়ে যায়।
উদাহরণ:
multiply_numbers <- function(x, y) {
result <- x * y
return(result)
}
product <- multiply_numbers(4, 6)
print(product) # এটি ২৪ রিটার্ন করবে৩. Default Arguments
R-এ ফাংশনের মধ্যে কিছু আর্গুমেন্টের জন্য ডিফল্ট মান নির্ধারণ করা যেতে পারে। এর মানে হল যে যদি আপনি ফাংশন কল করার সময় কোনো আর্গুমেন্ট না দেন, তবে তা ডিফল্ট মান গ্রহণ করবে।
উদাহরণ:
greet <- function(name = "Guest") {
print(paste("Hello, ", name, "!", sep = ""))
}
greet("John") # এটি "Hello, John!" প্রিন্ট করবে
greet() # এটি "Hello, Guest!" প্রিন্ট করবেএখানে name আর্গুমেন্টের জন্য একটি ডিফল্ট মান "Guest" দেওয়া হয়েছে।
৪. Multiple Return Values
R ফাংশন একাধিক মান (multiple values) রিটার্ন করতে পারে। এটি করতে একটি ভেক্টর, লিস্ট বা ডেটাফ্রেম ব্যবহার করা যেতে পারে।
উদাহরণ:
get_min_max <- function(numbers) {
min_val <- min(numbers)
max_val <- max(numbers)
return(list(min = min_val, max = max_val))
}
result <- get_min_max(c(1, 2, 3, 4, 5))
print(result) # এটি min = 1 এবং max = 5 রিটার্ন করবেএখানে get_min_max ফাংশন একটি লিস্ট রিটার্ন করছে, যা দুটি মান (min এবং max) ধারণ করে।
৫. Anonymous Functions (Lambda Functions)
R-এ আপনি একটি Anonymous Function বা Lambda Function তৈরি করতে পারেন, যেটি একটি নাম ছাড়া ফাংশন যা একবার ব্যবহার করা হয়। এই ফাংশন সাধারণত function() ব্যবহার করে তৈরি করা হয়।
উদাহরণ:
# Anonymous function তৈরি
result <- sapply(1:5, function(x) x^2) # ১ থেকে ৫ পর্যন্ত সংখ্যা স্কোয়ার করা
print(result) # এটি 1, 4, 9, 16, 25 রিটার্ন করবেএখানে function(x) x^2 একটি অ্যানোনিমাস ফাংশন যা ১ থেকে ৫ পর্যন্ত প্রতিটি সংখ্যার স্কোয়ার নেয়।
৬. Function with Variable Number of Arguments
R-এ একটি ফাংশন তৈরি করতে পারেন যা একটি চলমান সংখ্যা আর্গুমেন্ট গ্রহণ করতে পারে। এর জন্য ... (ellipsis) ব্যবহার করা হয়।
উদাহরণ:
sum_numbers <- function(...) {
numbers <- c(...)
total_sum <- sum(numbers)
return(total_sum)
}
result <- sum_numbers(1, 2, 3, 4, 5)
print(result) # এটি ১৫ রিটার্ন করবেএখানে sum_numbers ফাংশন যে কোনো সংখ্যক আর্গুমেন্ট গ্রহণ করতে পারে এবং তাদের যোগফল রিটার্ন করবে।
৭. Scope of Variables
R-এ local এবং global স্কোপ থাকে। একটি ভেরিয়েবল যদি ফাংশনের ভিতরে ডিফাইন করা হয় তবে সেটি local স্কোপে থাকবে এবং শুধুমাত্র সেই ফাংশনের মধ্যে প্রবেশযোগ্য হবে। তবে যদি সেটি ফাংশনের বাইরেও ব্যবহৃত হয়, তবে সেটি global স্কোপে থাকবে।
উদাহরণ:
x <- 10 # global variable
my_function <- function() {
y <- 5 # local variable
print(x) # global variable
print(y) # local variable
}
my_function() # এটি x এবং y মুদ্রিত করবে
# print(y) # এটি এরর দিবে কারণ y ফাংশনের বাইরের স্কোপে নেইসারসংক্ষেপ
- Functions: R-এ ফাংশনগুলি একটি নির্দিষ্ট কাজ সম্পাদন করতে ব্যবহৃত হয়। এগুলি কোডের পুনঃব্যবহারযোগ্যতা বৃদ্ধি করে এবং কোডকে আরও সংগঠিত করে।
- Function creation:
function()ফাংশন ব্যবহার করে নতুন ফাংশন তৈরি করা হয়। - Return value:
return()ব্যবহার করে ফাংশনের আউটপুট রিটার্ন করা হয়। - Default arguments: ডিফল্ট মান নির্ধারণ করে আর্গুমেন্ট প্রদান না করলেও ফাংশন কাজ করবে।
- Multiple return values: একাধিক মান রিটার্ন করার জন্য
list()ব্যবহার করা হয়। - Anonymous Functions: নাম ছাড়া ফাংশন তৈরি করা যেতে পারে যেগুলি একবার ব্যবহার করা হয়।
- Variable number of arguments:
...ব্যবহার করে চলমান আর্গুমেন্ট গ্রহণ করা যায়। - Scope: ফাংশনের ভিতরে ডিফাইন করা ভেরিয়েবল শুধুমাত্র ফাংশনের ভিতরে প্রবেশযোগ্য থাকে (local scope)।
R-এ ফাংশন ব্যবহারের মাধ্যমে আপনি কোডের কার্যকারিতা এবং সংগঠন বৃদ্ধি করতে পারবেন, এবং একই কোড একাধিক স্থানে পুনরায় ব্যবহার করতে পারবেন।
Read more