মূল কন্টেন্টে যান
মডিউল 2 · 2-এর পাঠ 2কোর্সে 4/10~12 min
মডিউল পাঠ (2/2)

শর্তাবলী এবং লুপ

R-এ জটিল অ্যালগরিদম এবং পদ্ধতিগুলি বাস্তবায়ন করতে, আপনাকে কোন নির্দেশাবলী কার্যকর করতে হবে এবং কতবার সেগুলি পুনরাবৃত্তি করতে হবে তা নিয়ন্ত্রণ করতে সক্ষম হতে হবে।

শর্তসাপেক্ষ বিবৃতি

R-এ, মৌলিক শর্তাধীন কাঠামো if এবং else এর উপর ভিত্তি করে। সিনট্যাক্সটি জাভাস্ক্রিপ্ট বা সি এর মতো ভাষার সাথে খুব মিল:

R
score <- 85

if (score >= 60) {
  print("Passed!")
} else {
  print("Failed.")
}

কোঁকড়া ধনুর্বন্ধনী {} বন্ধনীর ভিতরে বুলিয়ান এক্সপ্রেশনের ফলাফলের উপর নির্ভর করে চালানোর জন্য কোডের ব্লকগুলিকে সংজ্ঞায়িত করে।

for লুপ

R-এর for লুপটি একটি অনুক্রমের উপাদানগুলির উপর পুনরাবৃত্তি করতে ব্যবহৃত হয় (যেমন একটি ভেক্টর বা তালিকা)।

R
# Print numbers from 1 to 3
for (i in 1:3) {
  print(i)
}

R-এ, 1:3 সিনট্যাক্স হল ভেক্টর c(1, 2, 3) তৈরি করার একটি সংক্ষিপ্ত উপায়।

আমরা একটি বিদ্যমান ভেক্টরের উপাদানগুলির উপর সরাসরি লুপ করতে পারি:

R
fruits <- c("apple", "banana", "cherry")

for (fruit in fruits) {
  print(fruit)
}

ifelse ফাংশন

R-এ, ifelse() ফাংশনটি if-else স্টেটমেন্টের একটি ভেক্টরাইজড সংস্করণ। এটি আপনাকে একটি একক অপারেশনে একটি সম্পূর্ণ ভেক্টরে একটি শর্ত প্রয়োগ করতে দেয়, ফলাফলের একটি ভেক্টর ফিরিয়ে দেয়।

R
scores <- c(55, 80, 45, 90)
# Se score >= 60 assegna "Pass", altrimenti "Fail"
results <- ifelse(scores >= 60, "Pass", "Fail")
print(results) # "Fail" "Pass" "Fail" "Pass"

while লুপ

while লুপটি কোডের একটি ব্লকের পুনরাবৃত্তি করতে ব্যবহৃত হয় যতক্ষণ না একটি নির্দিষ্ট শর্ত সত্য থাকে (TRUE)। অসীম লুপগুলি প্রতিরোধ করার জন্য শর্তটি শেষ পর্যন্ত মিথ্যা হয়ে যায় তা নিশ্চিত করা অপরিহার্য।

R
counter <- 1
while (counter <= 3) {
  print(counter)
  counter <- counter + 1
}

নিজে চেষ্টা করে দেখুন

ব্যায়াম#r.m2.l2.e1
প্রচেষ্টা: 0লোড হচ্ছে...

একটি if-else শর্তসাপেক্ষ বিবৃতি লিখুন যা পরীক্ষা করে যে ভেরিয়েবল স্কোর 60-এর চেয়ে বেশি বা সমান। যদি তা হয়, তাহলে 'পাস'-এ স্ট্যাটাস সেট করুন, অন্যথায় 'ফেল'-এ সেট করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

ভেরিফিকা স্কোর >= ৬০ ই অ্যাসেগনা স্ট্যাটাস <- 'পাস' বা স্ট্যাটাস <- 'ফেল'

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম#r.m2.l2.e2
প্রচেষ্টা: 0লোড হচ্ছে...

একটি লুপের জন্য লিখুন যা ক্রম 1:5 এর উপর পুনরাবৃত্তি করে এবং print() ফাংশন ব্যবহার করে প্রতিটি মান প্রিন্ট করে।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

Usa la sintassi: for (i in 1:5) { print(i) }

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম#r.m2.l2.e3
প্রচেষ্টা: 0লোড হচ্ছে...

ভেক্টর v দেওয়া হয়েছে, একটি লুপ লিখুন যা প্রতিটি উপাদানের উপর পুনরাবৃত্তি করে এবং print() ব্যবহার করে এর দ্বিগুণ (val * 2) প্রিন্ট করে।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

v-এর উপাদানগুলির মধ্য দিয়ে লুপ করুন: for (v-এ val) { print(val * 2) }

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম#r.m2.l2.e4
প্রচেষ্টা: 0লোড হচ্ছে...

ভেক্টর স্কোর দেওয়া হলে, ifelse() ফাংশন ব্যবহার করে পরীক্ষা করুন যে কোন উপাদানগুলি 60-এর থেকে বড় বা সমান। পরিবর্তনশীল ফলাফলগুলিতে ফলাফলটি সংরক্ষণ করুন (যা প্রতিটি উপাদানের জন্য 'পাস' বা 'ফেল' থাকবে)।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

ফাংশন ব্যবহার করুন: ফলাফল <- ifelse(স্কোর >= 60, 'পাস', 'ফেল')

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম#r.m2.l2.e5
প্রচেষ্টা: 0লোড হচ্ছে...

x এর মান 50 অতিক্রম না করা পর্যন্ত দ্বিগুণ করার জন্য একটি while লুপ ব্যবহার করুন। এছাড়াও প্রতিটি পুনরাবৃত্তিতে কাউন্টার ভেরিয়েবল বৃদ্ধি করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

একটি সময় লুপ (x <= 50) ব্যবহার করুন এবং কোঁকড়া ধনুর্বন্ধনীর ভিতরে x এবং কাউন্টার উভয়ই আপডেট করুন।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ