R এ নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস (Control Flow Statements)
R প্রোগ্রামিং ভাষায় নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস (Control Flow Statements) ব্যবহার করে আমরা কোডের কার্যক্রমের গতি নিয়ন্ত্রণ করতে পারি। এটি আমাদের শর্তের উপর ভিত্তি করে কোডের বিভিন্ন অংশ কার্যকর করতে সাহায্য করে। নিয়ন্ত্রণ প্রবাহের মধ্যে রয়েছে if, else, else if, for, while, এবং break স্টেটমেন্টস। নিচে R এ ব্যবহৃত নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টগুলির ব্যাখ্যা দেওয়া হলো।
১. if স্টেটমেন্ট
if স্টেটমেন্ট দিয়ে নির্দিষ্ট শর্ত অনুযায়ী কোডের একটি অংশ কার্যকর করা হয়। যদি শর্ত সত্য (TRUE) হয়, তাহলে কোডের ভিতরের অংশটি চলবে।
উদাহরণ:
x <- 10
if(x > 5) {
print("x is greater than 5")
}এখানে, যদি x ৫ এর চেয়ে বড় হয়, তাহলে "x is greater than 5" মেসেজটি প্রিন্ট হবে।
২. else স্টেটমেন্ট
else স্টেটমেন্ট if স্টেটমেন্টের সঙ্গে ব্যবহার করা হয়, যখন শর্তটি মিথ্যা (FALSE) হয়। এর মানে হলো যদি if শর্তটি পূর্ণ না হয়, তাহলে else এর অন্তর্গত কোড চলবে।
উদাহরণ:
x <- 3
if(x > 5) {
print("x is greater than 5")
} else {
print("x is less than or equal to 5")
}এখানে, কারণ x ৫ এর সমান বা কম, তাই "x is less than or equal to 5" প্রিন্ট হবে।
৩. else if স্টেটমেন্ট
যখন একাধিক শর্ত পরীক্ষা করতে হয়, তখন else if ব্যবহার করা হয়। এটি একাধিক শর্তের মধ্যে সঠিক শর্তটি খুঁজে বের করতে সহায়তা করে।
উদাহরণ:
x <- 10
if(x > 15) {
print("x is greater than 15")
} else if(x > 5) {
print("x is greater than 5 but less than or equal to 15")
} else {
print("x is less than or equal to 5")
}এখানে, x এর মান ১০ হওয়ায়, "x is greater than 5 but less than or equal to 15" প্রিন্ট হবে।
৪. for লুপ
for লুপ দিয়ে একটি নির্দিষ্ট সংখ্যক বার কোড চালানো হয়। এটি সাধারণত একটি সিরিজ বা রেঞ্জে কাজ করতে ব্যবহৃত হয়।
উদাহরণ:
for(i in 1:5) {
print(i)
}এখানে, i ১ থেকে ৫ পর্যন্ত লুপ করবে এবং প্রতিটি সংখ্যা প্রিন্ট করবে। আউটপুট হবে:
1
2
3
4
5৫. while লুপ
while লুপ একটি শর্তের উপর ভিত্তি করে কোড চালাতে ব্যবহৃত হয়। যতক্ষণ না শর্ত মিথ্যা হয়, ততক্ষণ এটি চলতে থাকবে।
উদাহরণ:
i <- 1
while(i <= 5) {
print(i)
i <- i + 1
}এখানে, i ১ থেকে ৫ পর্যন্ত প্রিন্ট হবে। আউটপুট হবে:
1
2
3
4
5৬. break স্টেটমেন্ট
break স্টেটমেন্ট দিয়ে একটি লুপ থেকে বের হয়ে আসা যায়। এটি সাধারনত লুপের মধ্যে নির্দিষ্ট শর্ত পূর্ণ হলে লুপ থামাতে ব্যবহৃত হয়।
উদাহরণ:
for(i in 1:10) {
if(i == 6) {
break
}
print(i)
}এখানে, যখন i ৬ হবে, লুপ থেমে যাবে এবং ১ থেকে ৫ পর্যন্ত সংখ্যা প্রিন্ট হবে।
৭. next স্টেটমেন্ট
next স্টেটমেন্ট দিয়ে বর্তমান লুপের iteration (পুনরাবৃত্তি) বাদ দিয়ে পরবর্তী iteration এ চলে যেতে পারি।
উদাহরণ:
for(i in 1:5) {
if(i == 3) {
next
}
print(i)
}এখানে, i যখন ৩ হবে তখন ওই iteration বাদ দিয়ে পরবর্তী iteration এ চলে যাবে। আউটপুট হবে:
1
2
4
5সারসংক্ষেপ
R প্রোগ্রামিং ভাষায় নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস (Control Flow Statements) কোডের গতি নিয়ন্ত্রণ করে, যাতে শর্তাধীন কার্যক্রম বা পুনরাবৃত্তি কার্যক্রম সঠিকভাবে পরিচালিত হয়। এর মধ্যে কিছু মূল স্টেটমেন্টস হল:
if,else if,else: শর্তের ভিত্তিতে কোডের কার্যক্রম চালানো।forলুপ: নির্দিষ্ট সংখ্যক বার কোড চালানো।whileলুপ: শর্ত পূর্ণ হওয়া পর্যন্ত কোড চালানো।break: লুপ থেকে বের হয়ে আসা।next: বর্তমান iteration বাদ দিয়ে পরবর্তী iteration এ চলে যাওয়া।
এগুলি R কোড লেখার সময় কার্যকরী সিদ্ধান্ত গ্রহণের জন্য ব্যবহৃত হয়।
If-else এবং Nested If Statements
R প্রোগ্রামিং ভাষায় if-else স্টেটমেন্ট এবং nested if স্টেটমেন্টগুলি শর্তাধীন (conditional) লজিক তৈরি করতে ব্যবহৃত হয়। এগুলি কোডে নির্দিষ্ট শর্তের ভিত্তিতে বিভিন্ন কার্যক্রম পরিচালনা করতে সাহায্য করে।
১. If-else Statements
if-else স্টেটমেন্টটি একটি সাধারণ শর্তাধীন স্টেটমেন্ট যা একটি শর্ত পরীক্ষা করে এবং সেই শর্ত পূর্ণ হলে একটি ব্লক (যেমন একটি কোডের অংশ) কার্যকর হয়। যদি শর্তটি মিথ্যা হয়, তবে else ব্লক কার্যকর হয়।
সাধারণ সিনট্যাক্স:
if (condition) {
# যদি condition সত্য হয় তবে এই কোড ব্লকটি কার্যকর হবে
} else {
# যদি condition মিথ্যা হয় তবে এই কোড ব্লকটি কার্যকর হবে
}উদাহরণ:
x <- 10
if (x > 5) {
print("x is greater than 5")
} else {
print("x is less than or equal to 5")
}এখানে x > 5 শর্তটি পরীক্ষা করা হচ্ছে। যদি এটি সত্য হয় (যেহেতু x = 10), তাহলে "x is greater than 5" মুদ্রিত হবে। যদি এটি মিথ্যা হতো, তাহলে "x is less than or equal to 5" মুদ্রিত হতো।
২. Nested If Statements
Nested if স্টেটমেন্ট হল একটি if বা else ব্লকটির মধ্যে আরেকটি if-else স্টেটমেন্ট থাকে। এটি ব্যবহার করা হয় যখন একাধিক শর্ত পরীক্ষা করতে হয়, এবং এক শর্তের উপর ভিত্তি করে পরবর্তী শর্ত পরীক্ষা করতে হয়।
সাধারণ সিনট্যাক্স:
if (condition1) {
if (condition2) {
# condition1 এবং condition2 উভয়ই সত্য হলে এই কোড ব্লক কার্যকর হবে
} else {
# condition1 সত্য হলেও condition2 মিথ্যা হলে এই কোড ব্লক কার্যকর হবে
}
} else {
# condition1 মিথ্যা হলে এই কোড ব্লক কার্যকর হবে
}উদাহরণ:
x <- 10
y <- 20
if (x > 5) {
if (y > 10) {
print("x is greater than 5 and y is greater than 10")
} else {
print("x is greater than 5 and y is less than or equal to 10")
}
} else {
print("x is less than or equal to 5")
}এখানে প্রথমে x > 5 শর্তটি পরীক্ষা করা হয়। যদি এটি সত্য হয়, তখন y > 10 শর্তটি পরীক্ষা করা হয়। যদি y > 10 সত্য হয়, তাহলে "x is greater than 5 and y is greater than 10" মুদ্রিত হবে, অন্যথায় "x is greater than 5 and y is less than or equal to 10" মুদ্রিত হবে। যদি x > 5 মিথ্যা হয়, তাহলে "x is less than or equal to 5" মুদ্রিত হবে।
৩. Multiple Conditions in If-else Statements
R-এ একাধিক শর্তও ব্যবহার করা যায়, যেমন && (AND), || (OR) অপারেটর দিয়ে একাধিক শর্ত একসাথে পরীক্ষা করা।
উদাহরণ (AND এবং OR অপারেটর ব্যবহার):
x <- 10
y <- 5
if (x > 5 && y < 10) {
print("x is greater than 5 and y is less than 10")
} else {
print("Either x is less than or equal to 5, or y is greater than or equal to 10")
}এখানে && অপারেটরটি x > 5 এবং y < 10 শর্ত দুটি একসাথে পরীক্ষা করবে। যদি উভয় শর্ত সত্য হয়, তাহলে "x is greater than 5 and y is less than 10" মুদ্রিত হবে, অন্যথায় else ব্লকটি কার্যকর হবে।
৪. Else-if Statements
একাধিক শর্তের মধ্যে যেকোনো একটিকে কার্যকর করতে else-if ব্যবহার করা হয়। এটি মূলত একাধিক শর্তের জন্য একটি if-else ladder তৈরি করতে ব্যবহৃত হয়।
সাধারণ সিনট্যাক্স:
if (condition1) {
# যদি condition1 সত্য হয়
} else if (condition2) {
# যদি condition1 মিথ্যা এবং condition2 সত্য হয়
} else {
# যদি condition1 এবং condition2 উভয়ই মিথ্যা হয়
}উদাহরণ:
x <- 10
if (x > 15) {
print("x is greater than 15")
} else if (x > 5) {
print("x is greater than 5 but less than or equal to 15")
} else {
print("x is less than or equal to 5")
}এখানে প্রথমে x > 15 শর্তটি পরীক্ষা করা হবে। যদি এটি মিথ্যা হয়, তাহলে x > 5 শর্তটি পরীক্ষা হবে। যদি এটি সত্য হয়, "x is greater than 5 but less than or equal to 15" মুদ্রিত হবে। যদি উভয় শর্ত মিথ্যা হয়, তখন else ব্লকটি কার্যকর হবে এবং "x is less than or equal to 5" মুদ্রিত হবে।
সারসংক্ষেপ
- If-else statements: শর্ত অনুযায়ী কোডের দুটি বিকল্প কার্যকর করতে ব্যবহৃত হয়।
- Nested if statements: একটি
ifবাelseস্টেটমেন্টের মধ্যে আরেকটিif-elseস্টেটমেন্ট থাকে, যা একাধিক শর্ত পরীক্ষা করতে ব্যবহৃত হয়। - Multiple conditions: একাধিক শর্ত পরীক্ষার জন্য
&&(AND) এবং||(OR) অপারেটর ব্যবহার করা হয়। - Else-if: একাধিক শর্তের মধ্যে কোন একটি শর্ত কার্যকর করতে ব্যবহৃত হয়।
এই শর্তীয় লজিকগুলি R কোডে শর্তভিত্তিক কার্যক্রম সম্পাদন করতে গুরুত্বপূর্ণ ভূমিকা পালন করে।
R এ For, While, এবং Repeat Loops
R প্রোগ্রামিং ভাষায় লুপ (loops) ব্যবহার করা হয় কোনো নির্দিষ্ট কাজ বারবার করার জন্য। লুপগুলি বিশেষভাবে সহায়ক যখন আপনি একই ধরনের কাজ একাধিকবার করতে চান। R-এ তিনটি প্রধান ধরনের লুপ রয়েছে: For loop, While loop, এবং Repeat loop।
১. For Loop
For loop সাধারণত একটি নির্দিষ্ট সংখ্যা বা সিকোয়েন্সের জন্য পুনরাবৃত্তি (iteration) করতে ব্যবহৃত হয়। এটি সাধারনত একটি নির্দিষ্ট সংখ্যক বার কোন কাজ করতে ব্যবহৃত হয়।
Sintax:
for (variable in sequence) {
# Code to be executed
}- variable: একটি ভেরিয়েবল যা সিকোয়েন্সের প্রতিটি মান ধারণ করবে।
- sequence: একটি ভ্যালু বা সিকোয়েন্স (যেমন, সংখ্যা, ভেক্টর, তালিকা) যার মধ্যে লুপ চলবে।
উদাহরণ:
# 1 থেকে 5 পর্যন্ত সংখ্যা প্রিন্ট করা
for (i in 1:5) {
print(i)
}এখানে, i 1 থেকে 5 পর্যন্ত বৃদ্ধি পাবে এবং প্রতিটি মান প্রিন্ট হবে।
আরো একটি উদাহরণ:
# একটি ভেক্টর এবং তার মান গুণ করা
numbers <- c(2, 4, 6, 8)
for (num in numbers) {
print(num * 2)
}এখানে, numbers ভেক্টরের প্রতিটি উপাদানকে ২ দিয়ে গুণ করা হবে এবং ফলাফল প্রিন্ট হবে।
২. While Loop
While loop তখন ব্যবহৃত হয় যখন আপনি একটি শর্ত ঠিক না হওয়া পর্যন্ত কাজ করতে চান। এই লুপটি একটি নির্দিষ্ট শর্ত পূর্ণ না হওয়া পর্যন্ত চলতে থাকে।
Sintax:
while (condition) {
# Code to be executed
}- condition: একটি শর্ত, যা যদি সত্য (TRUE) হয়, তবে লুপটি চলতে থাকে।
উদাহরণ:
# 1 থেকে 5 পর্যন্ত সংখ্যা প্রিন্ট করা
i <- 1
while (i <= 5) {
print(i)
i <- i + 1 # i এর মান বাড়ানো
}এখানে, i এর মান ১ থেকে শুরু হয়ে ৫ পর্যন্ত বৃদ্ধি পায় এবং প্রতি বার i প্রিন্ট হবে।
আরও একটি উদাহরণ:
# যখন পর্যন্ত 10 এর নিচে সংখ্যা পাওয়া যাবে, তখন পর্যন্ত ভাগ করা
num <- 100
while (num > 10) {
print(num)
num <- num / 2 # num এর মান হালকা করা হচ্ছে
}এখানে, num ১০ এর বেশি থাকলে লুপটি চলতে থাকবে এবং প্রতিটি পদক্ষেপে সংখ্যাটি অর্ধেক হয়ে যাবে।
৩. Repeat Loop
Repeat loop একটি ইনফিনিট লুপ, যা শর্ত পূর্ণ না হওয়া পর্যন্ত চলতে থাকে। তবে, এটি বন্ধ করার জন্য break কমান্ড ব্যবহৃত হয়। এটি while লুপের মতো, তবে শর্তটি লুপের ভিতরেই পরীক্ষা করা হয় এবং কখনও কখনও শর্ত প্রক্রিয়া শেষে খতিয়ে দেখা হয়।
Sintax:
repeat {
# Code to be executed
if (condition) {
break # যদি শর্ত পূর্ণ হয়, লুপ থেকে বেরিয়ে আসবে
}
}উদাহরণ:
# 1 থেকে 5 পর্যন্ত সংখ্যা প্রিন্ট করা
i <- 1
repeat {
print(i)
i <- i + 1
if (i > 5) {
break # i যদি 5 এর বেশি হয়, লুপ থেকে বেরিয়ে আসবে
}
}এখানে, i ১ থেকে ৫ পর্যন্ত বৃদ্ধি পাবে এবং লুপটি তখন শেষ হবে যখন i ৫ এর বেশি হবে।
আরও একটি উদাহরণ:
# 100 পর্যন্ত একটি সংখ্যা প্রিন্ট করা, যদি সংখ্যা 50 এর বেশি হয়, তবে লুপ থামবে
num <- 1
repeat {
print(num)
num <- num + 1
if (num > 50) {
break
}
}এখানে, num প্রতি বার ১ করে বৃদ্ধি পাবে এবং num ৫০ এর বেশি হলে লুপটি থেমে যাবে।
Break এবং Next কমান্ড
break: এই কমান্ডটি লুপের মধ্যে ব্যবহার করা হয়, যাতে লুপের চলমান প্রক্রিয়া থামিয়ে দেওয়া হয়।উদাহরণ:
for (i in 1:10) { if (i == 5) { break # i যদি 5 হয়, লুপ বন্ধ হয়ে যাবে } print(i) }
next: এই কমান্ডটি লুপের চলমান চক্রে পরবর্তী চক্রে চলে যাওয়ার জন্য ব্যবহৃত হয়, যা বর্তমানে চলমান কোডটি বাদ দিয়ে পরবর্তী ইটারেশন শুরু করে।উদাহরণ:
for (i in 1:5) { if (i == 3) { next # i যদি 3 হয়, তাহলে পরবর্তী ইটারেশনে চলে যাবে } print(i) }
সারসংক্ষেপ
- For Loop: নির্দিষ্ট সংখ্যক বার একটি কাজ করতে ব্যবহৃত হয়, যেমন একটি সিকোয়েন্সের উপর কাজ করা।
- While Loop: একটি শর্ত পূর্ণ না হওয়া পর্যন্ত কাজ করতে ব্যবহৃত হয়।
- Repeat Loop: একটি ইনফিনিট লুপ যা শর্ত পূর্ণ না হওয়া পর্যন্ত চলতে থাকে, তবে
breakদিয়ে শেষ করা হয়।
R প্রোগ্রামিংয়ে লুপ ব্যবহার করে আপনি সহজেই পুনরাবৃত্তিমূলক কাজ করতে পারেন, যা ডেটা বিশ্লেষণ এবং অন্যান্য প্রোগ্রামিং কাজের জন্য খুবই সহায়ক।
R প্রোগ্রামিংয়ে Break এবং Next এর ব্যবহার
Break এবং Next হল দুটি বিশেষ কন্ট্রোল ফ্লো স্টেটমেন্ট যা লুপের ভিতরে ব্যবহৃত হয়। এই স্টেটমেন্টগুলো লুপের আচরণ নিয়ন্ত্রণ করতে সাহায্য করে। আসুন, এগুলোর বিস্তারিত ব্যবহার দেখে নেওয়া যাক।
১. Break স্টেটমেন্ট (Break Statement)
break স্টেটমেন্টটি লুপের ভিতর ব্যবহার করা হয় এবং এটি লুপটিকে তৎক্ষণাৎ থামিয়ে দেয়। যখন কোনো নির্দিষ্ট শর্ত পূর্ণ হয়, তখন লুপ থেকে বাহির হতে break ব্যবহার করা হয়।
ব্যবহার:
break সাধারণত for, while, এবং repeat লুপে ব্যবহার করা হয়, যাতে নির্দিষ্ট শর্তে লুপ থামানো যায়।
উদাহরণ ১: for লুপে break ব্যবহার
# 1 থেকে 10 পর্যন্ত সংখ্যা প্রিন্ট করা, কিন্তু যখন সংখ্যা 6 হবে তখন লুপ থামানো
for (i in 1:10) {
if (i == 6) {
break # লুপ থামিয়ে দেবে যখন i হবে 6
}
print(i)
}আউটপুট:
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5উপরে দেওয়া কোডে, যখন i == 6 হয়, তখন break স্টেটমেন্টটি লুপটিকে থামিয়ে দেয় এবং কোড ৬ পর্যন্ত মুদ্রিত হয়।
উদাহরণ ২: while লুপে break ব্যবহার
# 1 থেকে 10 পর্যন্ত সংখ্যা প্রিন্ট করা, কিন্তু 7 পেলে লুপ থামানো
i <- 1
while (i <= 10) {
if (i == 7) {
break # লুপ থামিয়ে দেবে যখন i হবে 7
}
print(i)
i <- i + 1
}আউটপুট:
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6এখানে, যখন i == 7 হবে, তখন break স্টেটমেন্টটি লুপ থামিয়ে দেয় এবং ৭ পর্যন্ত সংখ্যাগুলি প্রিন্ট হয়।
২. Next স্টেটমেন্ট (Next Statement)
next স্টেটমেন্টটি লুপের মধ্যে ব্যবহৃত হয় এবং এটি তখন কাজ করে যখন কোনো নির্দিষ্ট শর্ত পূর্ণ হয়। next স্টেটমেন্ট লুপের বাকি অংশ বাদ দিয়ে পরবর্তী ইটারেশনে চলে যায়, অর্থাৎ লুপের পরবর্তী চক্রে চলে যায়।
ব্যবহার:
next স্টেটমেন্টটি লুপের ভিতরে ব্যবহৃত হয় এবং লুপের সেই অংশকে বাদ দেয়, যা next স্টেটমেন্টের পরে রয়েছে। এটি সাধারণত শর্ত ভিত্তিক কোড বাদ দেওয়ার জন্য ব্যবহৃত হয়।
উদাহরণ ১: for লুপে next ব্যবহার
# 1 থেকে 10 পর্যন্ত সংখ্যা প্রিন্ট করা, কিন্তু যেগুলো 5 এর গুণ সংখ্যা তাদের বাদ দেওয়া
for (i in 1:10) {
if (i %% 5 == 0) {
next # 5, 10 বাদ দিয়ে পরবর্তী ইটারেশনে চলে যাবে
}
print(i)
}আউটপুট:
[1] 1
[1] 2
[1] 3
[1] 4
[1] 6
[1] 7
[1] 8
[1] 9এখানে, যখন i %% 5 == 0 হয়, তখন next স্টেটমেন্টটি পরবর্তী ইটারেশনে চলে যায় এবং ৫ এবং ১০ প্রিন্ট হয় না।
উদাহরণ ২: while লুপে next ব্যবহার
# 1 থেকে 10 পর্যন্ত সংখ্যা প্রিন্ট করা, কিন্তু যেগুলো 3 এর গুণ সংখ্যা তাদের বাদ দেওয়া
i <- 1
while (i <= 10) {
if (i %% 3 == 0) {
i <- i + 1
next # 3, 6, 9 বাদ দিয়ে পরবর্তী ইটারেশনে চলে যাবে
}
print(i)
i <- i + 1
}আউটপুট:
[1] 1
[1] 2
[1] 4
[1] 5
[1] 7
[1] 8
[1] 10এখানে, যখন i %% 3 == 0 হয়, তখন next পরবর্তী ইটারেশনে চলে যায় এবং ৩, ৬, ৯ প্রিন্ট হয় না।
সারসংক্ষেপ
break: এটি লুপ থেকে তৎক্ষণাৎ বের হয়ে আসে। যখন কোনো শর্ত পূর্ণ হয়, তখন লুপ থামিয়ে দেয়।next: এটি বর্তমান ইটারেশনটি বাদ দিয়ে লুপের পরবর্তী ইটারেশনে চলে যায়। এর মাধ্যমে শর্ত ভিত্তিক কিছু অংশ বাদ দেওয়া হয় এবং পরবর্তী চক্রে চলে যাওয়া হয়।
এই দুটি কন্ট্রোল স্টেটমেন্ট র-এর লুপের কার্যক্ষমতা এবং শর্ত ভিত্তিক সিদ্ধান্ত গ্রহণ সহজ করে তোলে।
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()এর মতোই কাজ করে তবে এটি সহজ এবং কম্প্যাক্ট আউটপুট (ভেক্টর বা ম্যাট্রিক্স) প্রদান করে।
এই ফাংশনগুলো আপনাকে দ্রুত এবং কার্যকরভাবে ডেটা ম্যানিপুলেশন, পরিসংখ্যান বিশ্লেষণ, এবং অন্যান্য গণনা সম্পন্ন করতে সাহায্য করবে।
Read more