R প্রোগ্রামিং: Apply Family Functions (apply, lapply, sapply)
R প্রোগ্রামিংয়ে apply family functions (যেমন apply(), lapply(), এবং sapply()) হল এমন ফাংশনগুলির একটি গ্রুপ যা ডেটা কাঠামোর উপর কাজ করে এবং বিশেষ করে লুপিং (looping) এর পরিবর্তে বেশি কার্যকরীভাবে কোড লেখার জন্য ব্যবহৃত হয়। এগুলি সাধারণত ডেটা ম্যানিপুলেশন, পরিসংখ্যান বিশ্লেষণ, এবং অন্যান্য কাজের জন্য ব্যবহৃত হয়।
নিচে apply(), lapply(), এবং sapply() ফাংশনগুলির বিস্তারিত ব্যাখ্যা এবং উদাহরণ দেওয়া হলো।
১. apply() ফাংশন
apply() ফাংশনটি মূলত matrices এবং data frames এর উপর কাজ করে, এবং এটি কলাম বা রো অনুযায়ী ফাংশন প্রয়োগ করতে ব্যবহৃত হয়।
Syntax:
apply(X, MARGIN, FUN, ...)X: ডেটা কাঠামো (ম্যাট্রিক্স বা ডেটা ফ্রেম)MARGIN: যে দিকে ফাংশন প্রয়োগ করতে চান (১ = রো, ২ = কলাম)FUN: ফাংশন যা প্রয়োগ করতে চান (যেমন,sum,mean, ইত্যাদি)...: অতিরিক্ত আর্গুমেন্ট
উদাহরণ:
# একটি ম্যাট্রিক্স তৈরি
m <- matrix(1:9, nrow = 3, ncol = 3)
# প্রতিটি কলামের গড় বের করা
apply(m, 2, mean) # আউটপুট হবে 4 5 6 (কলাম অনুযায়ী গড়)
# প্রতিটি রোর গড় বের করা
apply(m, 1, mean) # আউটপুট হবে 2 5 8 (রো অনুযায়ী গড়)এখানে apply(m, 2, mean) কলামের গড় বের করেছে, আর apply(m, 1, mean) রোর গড় বের করেছে।
২. lapply() ফাংশন
lapply() ফাংশনটি একটি লিস্ট বা অন্যান্য ডেটা কাঠামোর উপর একটি ফাংশন প্রয়োগ করতে ব্যবহৃত হয় এবং এটি প্রতিটি উপাদান (element) জন্য একটি লিস্ট রিটার্ন করে।
Syntax:
lapply(X, FUN, ...)X: লিস্ট বা ভেক্টরFUN: প্রয়োগ করা ফাংশন...: অতিরিক্ত আর্গুমেন্ট
উদাহরণ:
# একটি লিস্ট তৈরি
my_list <- list(a = 1:5, b = 6:10, c = 11:15)
# প্রতিটি উপাদানের গড় বের করা
lapply(my_list, mean) # আউটপুট হবে list(a = 3, b = 8, c = 13)এখানে lapply(my_list, mean) ফাংশনটি প্রতিটি লিস্ট উপাদানের গড় বের করেছে এবং একটি লিস্ট আউটপুট দিয়েছে।
আরও উদাহরণ:
# লিস্টে প্রতিটি উপাদানের উপর এক্সপোনেনশিয়াল প্রয়োগ করা
lapply(my_list, exp)৩. sapply() ফাংশন
sapply() ফাংশনটি lapply() এর মতো কাজ করে, তবে এটি সাধারণত একটি ভেক্টর বা ম্যাট্রিক্স আউটপুট দেয় (যদি ফলাফলটি সহজ হতে পারে)। এটি lapply() এর চেয়ে দ্রুত এবং কম্প্যাক্ট আউটপুট প্রদান করে।
Syntax:
sapply(X, FUN, ...)X: লিস্ট বা ভেক্টরFUN: প্রয়োগ করা ফাংশন...: অতিরিক্ত আর্গুমেন্ট
উদাহরণ:
# একটি লিস্ট তৈরি
my_list <- list(a = 1:5, b = 6:10, c = 11:15)
# প্রতিটি উপাদানের গড় বের করা
sapply(my_list, mean) # আউটপুট হবে a = 3, b = 8, c = 13 (ভেক্টর আউটপুট)এখানে sapply(my_list, mean) লিস্টের গড় বের করেছে এবং একটি ভেক্টর আউটপুট দিয়েছে।
আরও উদাহরণ:
# প্রতিটি উপাদানের উপর সাইন প্রয়োগ করা
sapply(my_list, sin) # আউটপুট হবে c(-0.9589, 0.4122, 0.9117)৪. apply() vs lapply() vs sapply()
apply():- ব্যবহার: ম্যাট্রিক্স বা ডেটা ফ্রেমে রো বা কলাম অনুযায়ী ফাংশন প্রয়োগ করতে।
- আউটপুট: একটি ভেক্টর বা ম্যাট্রিক্স।
- প্রযোজ্যতা: ম্যাট্রিক্স বা ডেটা ফ্রেমের জন্য।
lapply():- ব্যবহার: লিস্ট বা অন্যান্য সিম্পল ডেটা কাঠামোর প্রতিটি উপাদানে ফাংশন প্রয়োগ করতে।
- আউটপুট: লিস্ট।
- প্রযোজ্যতা: লিস্ট বা ভেক্টরের জন্য।
sapply():- ব্যবহার:
lapply()এর মতো, তবে সহজ ফলাফল হিসেবে ভেক্টর বা ম্যাট্রিক্স আউটপুট দেয়। - আউটপুট: ভেক্টর বা ম্যাট্রিক্স (যদি সম্ভব হয়)।
- প্রযোজ্যতা: লিস্ট বা ভেক্টরের জন্য।
- ব্যবহার:
৫. আরও কিছু উদাহরণ
apply() উদাহরণ:
# একটি 4x3 ম্যাট্রিক্স তৈরি
mat <- matrix(1:12, nrow = 4)
# প্রতিটি কলামের যোগফল বের করা
apply(mat, 2, sum) # আউটপুট হবে 22 26 30lapply() উদাহরণ:
# লিস্টের প্রতিটি উপাদানে একটি ফাংশন প্রয়োগ
lst <- list(a = 1:3, b = 4:6, c = 7:9)
lapply(lst, sum) # আউটপুট হবে list(a = 6, b = 15, c = 24)sapply() উদাহরণ:
# লিস্টের প্রতিটি উপাদানে একটি ফাংশন প্রয়োগ এবং সহজ আউটপুট পাওয়া
sapply(lst, sum) # আউটপুট হবে a = 6, b = 15, c = 24 (ভেক্টর আউটপুট)সারসংক্ষেপ
apply(): ম্যাট্রিক্স বা ডেটা ফ্রেমে রো বা কলাম অনুযায়ী ফাংশন প্রয়োগ করতে ব্যবহৃত হয়। এটি একটি ভেক্টর বা ম্যাট্রিক্স আউটপুট দেয়।lapply(): লিস্ট বা ভেক্টরের প্রতিটি উপাদানে ফাংশন প্রয়োগ করে এবং একটি লিস্ট আউটপুট দেয়।sapply():lapply()এর মতোই কাজ করে তবে এটি সহজ এবং কম্প্যাক্ট আউটপুট (ভেক্টর বা ম্যাট্রিক্স) প্রদান করে।
এই ফাংশনগুলো আপনাকে দ্রুত এবং কার্যকরভাবে ডেটা ম্যানিপুলেশন, পরিসংখ্যান বিশ্লেষণ, এবং অন্যান্য গণনা সম্পন্ন করতে সাহায্য করবে।