Skill

Loops এবং Conditional Logic

স্যাস (SAS) - Big Data and Analytics

368

SAS প্রোগ্রামিং ভাষায় Loops এবং Conditional Logic ডেটা প্রক্রিয়াকরণের জন্য অত্যন্ত গুরুত্বপূর্ণ। Loops ব্যবহৃত হয় যখন আমাদের একাধিক বার একই ধরনের কাজ করতে হয় এবং Conditional Logic ব্যবহৃত হয় শর্তের ভিত্তিতে কাজ করার জন্য।

Loops (লুপ)

SAS-এ দুটি প্রধান ধরনের লুপ আছে:

  1. DO Loop
  2. DO WHILE Loop

১. DO Loop

DO Loop হল একটি স্ট্যাটিক লুপ, যা নির্দিষ্ট সংখ্যক বার কাজ সম্পাদন করে। এটি সাধারণত তখন ব্যবহৃত হয় যখন জানি আমরা কতবার কাজটি করতে চাই।

উদাহরণ: DO Loop
data result;
    do i = 1 to 5;  /* i এর মান 1 থেকে 5 পর্যন্ত বাড়বে */
        output;
    end;
run;

proc print data=result;
run;

এখানে:

  • do i = 1 to 5 নির্দেশটি জানাচ্ছে যে, লুপটি ৫ বার চলবে।
  • প্রতি বার লুপ চালানোর সময় output; স্টেটমেন্ট দিয়ে রেকর্ড তৈরি করা হবে।

২. DO WHILE Loop

DO WHILE Loop একটি ডায়নামিক লুপ, যা নির্দিষ্ট শর্ত পূর্ণ না হওয়া পর্যন্ত চলতে থাকে। এটি তখন ব্যবহার করা হয় যখন আমরা জানি না কতবার লুপটি চলবে, তবে একটি শর্ত পূর্ণ না হওয়া পর্যন্ত চলবে।

উদাহরণ: DO WHILE Loop
data result;
    i = 1;
    do while (i <= 5);
        output;
        i + 1; /* i এর মান 1 বাড়ানো হচ্ছে */
    end;
run;

proc print data=result;
run;

এখানে:

  • do while (i <= 5) শর্তটি পূর্ণ না হওয়া পর্যন্ত লুপ চলবে।
  • i + 1 এর মাধ্যমে প্রতি বার লুপ চালানোর সময় i এর মান ১ করে বাড়ানো হচ্ছে।

Conditional Logic (শর্তসাপেক্ষ লজিক)

SAS-এ শর্তসাপেক্ষ লজিক ব্যবহৃত হয় ডেটার ওপর ভিত্তি করে সিদ্ধান্ত নেওয়ার জন্য। IF-THEN এবং IF-THEN-ELSE এর মাধ্যমে শর্তানুযায়ী কোড চালানো যায়।

১. IF-THEN Logic

IF-THEN লজিক একটি সাধারণ শর্ত যা নির্দিষ্ট শর্ত পূর্ণ হলে একটি নির্দিষ্ট কাজ করতে সহায়তা করে।

উদাহরণ: IF-THEN Logic
data result;
    set work.sales;
    if Revenue > 10000 then Bonus = Revenue * 0.10; /* যদি Revenue ১০,০০০ এর বেশি হয় */
run;

proc print data=result;
run;

এখানে:

  • যদি Revenue ভেরিয়েবলের মান ১০,০০০ এর বেশি হয়, তবে Bonus ভেরিয়েবলে ১০% হিসেবে বোনাস হিসাব করা হবে।

২. IF-THEN-ELSE Logic

IF-THEN-ELSE লজিক দুটি শর্ত প্রয়োগ করে, যার মধ্যে একটি শর্ত পূর্ণ হলে একটি কাজ এবং অন্যটি পূর্ণ হলে অন্য কাজ করা হয়।

উদাহরণ: IF-THEN-ELSE Logic
data result;
    set work.sales;
    if Revenue > 10000 then Bonus = Revenue * 0.10;
    else Bonus = Revenue * 0.05; /* যদি Revenue ১০,০০০ এর কম হয় */
run;

proc print data=result;
run;

এখানে:

  • IF-THEN-ELSE লজিক ব্যবহার করে দুটি শর্ত দেয়া হয়েছে। যদি Revenue ১০,০০০ এর বেশি হয়, তবে বোনাস হবে ১০%, অন্যথায় বোনাস হবে ৫%।

৩. IF-THEN-ELSE IF Logic

IF-THEN-ELSE IF লজিক একাধিক শর্ত পরীক্ষা করতে ব্যবহৃত হয়। এটি একাধিক শর্তের মধ্যে প্রথম শর্ত পূর্ণ হলে একটি নির্দিষ্ট কাজ সম্পাদন করে।

উদাহরণ: IF-THEN-ELSE IF Logic
data result;
    set work.sales;
    if Revenue > 20000 then Bonus = Revenue * 0.15;
    else if Revenue > 10000 then Bonus = Revenue * 0.10;
    else Bonus = Revenue * 0.05; /* স্যালারি অনুযায়ী বোনাস */
run;

proc print data=result;
run;

এখানে:

  • তিনটি শর্ত দেয়া হয়েছে, প্রথম শর্ত পূর্ণ হলে ১৫% বোনাস, দ্বিতীয় শর্ত পূর্ণ হলে ১০% বোনাস এবং তৃতীয় শর্ত পূর্ণ হলে ৫% বোনাস হবে।

সারাংশ

SAS-এ Loops এবং Conditional Logic ব্যবহার করে ডেটার প্রক্রিয়া এবং বিশ্লেষণ সহজ করা যায়:

  • DO Loop এবং DO WHILE Loop ডেটার উপর একাধিক কাজ করতে সহায়তা করে।
  • IF-THEN, IF-THEN-ELSE, এবং IF-THEN-ELSE IF শর্তানুযায়ী কাজ করার জন্য ব্যবহার হয়।
  • শর্তপূর্ণ লজিক এবং লুপের সাহায্যে ডেটা ম্যানিপুলেশন এবং বিশ্লেষণ করা অত্যন্ত সহজ হয়ে ওঠে, যা পরবর্তী বিশ্লেষণে সহায়তা করে।

এগুলি ডেটা বিশ্লেষণের জন্য অত্যন্ত শক্তিশালী এবং কার্যকরী সরঞ্জাম হিসেবে ব্যবহৃত হয়।

Content added By

SAS-এ DO Loops একটি গুরুত্বপূর্ণ কৌশল যা আপনাকে একটি কোড ব্লককে একাধিকবার পুনরাবৃত্তি (iterate) করতে সক্ষম করে। এটি ডেটা প্রক্রিয়াকরণ, গণনা, এবং বিশ্লেষণের ক্ষেত্রে অত্যন্ত কার্যকরী, বিশেষ করে যখন আপনি একাধিক ধাপ একে অপরের সাথে সম্পন্ন করতে চান। DO Loops ব্যবহার করে আপনি সহজে কোন নির্দিষ্ট কাজ একাধিক ভ্যালু বা শর্তে চালাতে পারেন।


DO Loop এর মূল কাঠামো

SAS-এ DO Loop এর গঠন সাধারণত এইভাবে হয়:

DO index_variable = start_value TO end_value BY increment;
   /* আপনার কোড */
END;

এখানে:

  • index_variable: এটি একটি লুপ ইন্ডেক্স ভেরিয়েবল যা লুপের প্রতিটি পুনরাবৃত্তি (iteration) ট্র্যাক করে।
  • start_value: লুপটি যে মান থেকে শুরু হবে।
  • end_value: লুপটি কোন মানে গিয়ে শেষ হবে।
  • BY increment: এটি নির্দেশ করে যে প্রতিটি পুনরাবৃত্তিতে ইন্ডেক্স ভেরিয়েবলটি কতটা বৃদ্ধি পাবে।

উদাহরণ ১: সিম্পল DO Loop

এটি একটি সহজ উদাহরণ যেখানে ১ থেকে ৫ পর্যন্ত সংখ্যা প্রিন্ট করা হয়েছে।

data loop_example;
   do i = 1 to 5;
      output;
   end;
run;

proc print data=loop_example;
run;

এখানে:

  • do i = 1 to 5; নির্দেশটি i ভেরিয়েবলটি ১ থেকে ৫ পর্যন্ত ইটারেট করবে।
  • output; প্রতিটি পুনরাবৃত্তিতে একটি নতুন রেকর্ড তৈরি করবে।

উদাহরণ ২: STEP ইনক্রিমেন্ট ব্যবহার করা

DO Loop এর মাধ্যমে আপনি BY অপশন ব্যবহার করে প্রতিটি ইটারেশনে কিভাবে ভেরিয়েবলটি ইনক্রিমেন্ট হবে তা নির্ধারণ করতে পারেন।

data loop_example2;
   do i = 1 to 10 by 2;  /* i ১ থেকে ১০ পর্যন্ত ২ করে বাড়বে */
      output;
   end;
run;

proc print data=loop_example2;
run;

এখানে:

  • do i = 1 to 10 by 2; — এখানে i ভেরিয়েবলটি ১ থেকে ১০ পর্যন্ত ২ করে বাড়বে (১, ৩, ৫, ৭, ৯)।

উদাহরণ ৩: Negative Step ব্যবহার করা

আপনি DO Loop-এ BY অপশন দিয়ে নেগেটিভ ইনক্রিমেন্টও ব্যবহার করতে পারেন, অর্থাৎ ভেরিয়েবলটি কমিয়ে আনা।

data loop_example3;
   do i = 10 to 1 by -2;  /* i ১০ থেকে ১ পর্যন্ত ২ করে কমবে */
      output;
   end;
run;

proc print data=loop_example3;
run;

এখানে:

  • do i = 10 to 1 by -2; — এখানে i ভেরিয়েবলটি ১০ থেকে ১ পর্যন্ত ২ করে কমবে (১০, ৮, ৬, ৪, ২)।

উদাহরণ ৪: Multiple Variables এর জন্য DO Loop

একাধিক ভেরিয়েবল একসাথে ব্যবহার করে DO Loop তৈরি করা যায়। নিচের উদাহরণে দুটি ভেরিয়েবল (x এবং y) একসাথে ব্যবহার করা হয়েছে।

data loop_example4;
   do x = 1 to 5;
      y = x * 10;  /* y-এর মান x এর গুণফল */
      output;
   end;
run;

proc print data=loop_example4;
run;

এখানে:

  • x ভেরিয়েবল ১ থেকে ৫ পর্যন্ত ইটারেট করবে এবং y ভেরিয়েবলটি x এর গুণফল হবে।

উদাহরণ ৫: Nested DO Loops

আপনি SAS-এ Nested DO Loops ব্যবহার করে একাধিক লুপ একসাথে ব্যবহার করতে পারেন। অর্থাৎ, এক লুপের ভিতরে আরেকটি লুপ থাকতে পারে।

data nested_loop_example;
   do i = 1 to 3;
      do j = 1 to 2;
         result = i * j;
         output;
      end;
   end;
run;

proc print data=nested_loop_example;
run;

এখানে:

  • বাহ্যিক লুপ (outer loop) i ভেরিয়েবলকে ১ থেকে ৩ পর্যন্ত ইটারেট করবে।
  • অভ্যন্তরীণ লুপ (inner loop) j ভেরিয়েবলকে ১ থেকে ২ পর্যন্ত ইটারেট করবে।
  • result ভেরিয়েবলটি প্রতিটি i এবং j এর গুণফল হবে।

DO Loop এর প্রয়োগ

DO Loops এর কিছু গুরুত্বপূর্ণ ব্যবহার ক্ষেত্র:

  1. কয়েকটি সংখ্যার উপর গণনা: DO Loop এর মাধ্যমে একাধিক সংখ্যার উপর গণনা বা নির্দিষ্ট গাণিতিক কাজ করা যায়।
  2. ডেটাসেটে নতুন ভেরিয়েবল তৈরি করা: DO Loop ব্যবহার করে ডেটাসেটে নতুন ভেরিয়েবল তৈরি বা ম্যানিপুলেট করা যায়।
  3. লুপের মাধ্যমে একাধিক শর্ত পরীক্ষা করা: বিভিন্ন শর্তের ভিত্তিতে ডেটাতে বিভিন্ন কাজ সম্পাদন করা যায়।

সারাংশ

SAS-এ DO Loops একটি শক্তিশালী কৌশল যা আপনাকে একাধিক কাজ বা প্রক্রিয়া একাধিকবার পুনরাবৃত্তি (iterate) করতে সক্ষম করে। DO লুপের মাধ্যমে আপনি সহজেই ডেটাসেটে নতুন ভেরিয়েবল তৈরি, গাণিতিক হিসাব, এবং বিশ্লেষণ করতে পারেন। এই লুপটি start_value থেকে end_value পর্যন্ত নির্দিষ্ট স্টেপে ইটারেট করার মাধ্যমে বিভিন্ন কাজ দ্রুত সম্পন্ন করতে সহায়তা করে। Nested DO Loops ব্যবহার করে আরও জটিল কাজ করতে পারেন, যা একাধিক ভেরিয়েবলের জন্য কার্যকর হতে পারে।

Content added By

SAS-এ IF-THEN/ELSE স্টেটমেন্টগুলো ব্যবহার করে আপনি শর্তাধীন লজিক (conditional logic) তৈরি করতে পারেন, যা ডেটা বিশ্লেষণ এবং ম্যানিপুলেশনে অত্যন্ত গুরুত্বপূর্ণ। এই স্টেটমেন্টগুলির মাধ্যমে আপনি নির্দিষ্ট শর্ত বা পরিস্থিতির ভিত্তিতে কোনো কার্যকলাপ সম্পাদন করতে পারেন। IF-THEN এবং ELSE স্টেটমেন্টগুলো সাধারণত ডেটা ফিল্টারিং, ডেটা ম্যানিপুলেশন এবং লজিক্যাল সিদ্ধান্ত গ্রহণের জন্য ব্যবহৃত হয়।


IF-THEN/ELSE লজিকের মৌলিক গঠন

SAS-এ IF-THEN/ELSE স্টেটমেন্টের সাধারণ গঠন হলো:

IF condition THEN action;
ELSE action;

এখানে:

  • condition: এটি শর্ত যা পরীক্ষা করা হবে।
  • action: যদি শর্তটি সত্য হয়, তাহলে যে কাজটি করা হবে।
  • ELSE: যদি শর্তটি মিথ্যা হয়, তাহলে অন্য কাজটি করা হবে।

উদাহরণ ১: সাধারণ IF-THEN/ELSE লজিক

data salary_check;
   input name $ salary;
   if salary > 50000 then bonus = salary * 0.10;
   else bonus = salary * 0.05;
   datalines;
John 55000
Sara 45000
Mike 60000
;
run;

proc print data=salary_check;
run;

এখানে:

  • যদি salary 50,000 এর বেশি হয়, তবে bonus হবে স্যালারির ১০%।
  • অন্যথায়, salary 50,000 এর কম হলে, bonus হবে স্যালারির ৫%।

উদাহরণ ২: Multiple Conditions with IF-THEN/ELSE

যদি একাধিক শর্ত পরীক্ষা করতে চান, তবে আপনি ELSE IF ব্যবহার করতে পারেন।

data grade_check;
   input name $ score;
   if score >= 90 then grade = 'A';
   else if score >= 80 then grade = 'B';
   else if score >= 70 then grade = 'C';
   else grade = 'D';
   datalines;
John 85
Sara 92
Mike 75
Tom 65
;
run;

proc print data=grade_check;
run;

এখানে:

  • score 90 বা তার বেশি হলে, গ্রেড হবে 'A'।
  • score 80 থেকে 89 এর মধ্যে হলে, গ্রেড হবে 'B'।
  • score 70 থেকে 79 এর মধ্যে হলে, গ্রেড হবে 'C'।
  • অন্যথায়, গ্রেড হবে 'D'।

উদাহরণ ৩: ব্যবহারিক শর্ত এবং লজিক্যাল অপারেটর

SAS-এ AND এবং OR অপারেটর ব্যবহার করে আপনি একাধিক শর্ত পরীক্ষা করতে পারেন। উদাহরণস্বরূপ, একটি ডেটাসেটে যদি একাধিক শর্ত পূর্ণ হতে হয়, তবে AND অপারেটর এবং যদি যেকোনো একটি শর্ত পূর্ণ হয়, তবে OR অপারেটর ব্যবহার করা হয়।

AND অপারেটর উদাহরণ:

data employee_bonus;
   input name $ age years_of_service;
   if age > 30 and years_of_service > 5 then bonus = 0.10;
   else bonus = 0.05;
   datalines;
John 35 6
Sara 28 3
Mike 40 10
;
run;

proc print data=employee_bonus;
run;

এখানে:

  • AND অপারেটর ব্যবহার করা হয়েছে, যাতে age ৩০ এর বেশি এবং years_of_service ৫ বছরের বেশি হলে বোনাস ১০% হবে। অন্যথায়, বোনাস হবে ৫%।

OR অপারেটর উদাহরণ:

data employee_bonus;
   input name $ age years_of_service;
   if age > 30 or years_of_service > 5 then bonus = 0.10;
   else bonus = 0.05;
   datalines;
John 35 6
Sara 28 3
Mike 40 10
;
run;

proc print data=employee_bonus;
run;

এখানে:

  • OR অপারেটর ব্যবহার করা হয়েছে, যাতে যদি age ৩০ এর বেশি হয় অথবা years_of_service ৫ বছরের বেশি হয়, তবে বোনাস ১০% হবে। অন্যথায়, বোনাস হবে ৫%।

উদাহরণ ৪: Missing Values (মিসিং ভ্যালু) চেক করা

SAS-এ IF-THEN/ELSE স্টেটমেন্ট ব্যবহার করে আপনি মিসিং ভ্যালু (missing value) চেকও করতে পারেন। মিসিং ভ্যালু যাচাই করতে আপনি SAS-এর . (ডট) ব্যবহার করতে পারেন।

data employee_data;
   input name $ age salary;
   if age = . then put 'ERROR: Age is missing for ' name;
   if salary = . then put 'ERROR: Salary is missing for ' name;
   datalines;
John 35 50000
Sara . 45000
Mike 40 .
;
run;

এখানে:

  • যদি age বা salary ফাঁকা থাকে, তাহলে ত্রুটি বার্তা প্রিন্ট হবে।

সারাংশ

SAS-এ IF-THEN/ELSE স্টেটমেন্টগুলি ডেটা ম্যানিপুলেশন এবং বিশ্লেষণে শর্তাধীন লজিক তৈরি করার জন্য ব্যবহৃত হয়। এই স্টেটমেন্টগুলি ব্যবহার করে আপনি শর্ত পরীক্ষা করে নির্দিষ্ট কাজ সম্পাদন করতে পারেন। আপনি একাধিক শর্ত যুক্ত করতে ELSE IF, AND, এবং OR অপারেটর ব্যবহার করতে পারেন। এটি ডেটা ফিল্টারিং, ডেটা ম্যানিপুলেশন এবং লজিক্যাল সিদ্ধান্ত নেওয়ার জন্য অত্যন্ত কার্যকরী।

Content added By

SAS-এ Array ব্যবহার করে আপনি একাধিক ভেরিয়েবলের সাথে সহজে কাজ করতে পারেন। Array একটি ডেটা স্ট্রাকচার যা একাধিক ভেরিয়েবলকে একটি সাধারণ নামের অধীনে গ্রুপ করে এবং তাদের সাথে সহজে ম্যানিপুলেশন করতে সহায়তা করে। এতে একটি ভেরিয়েবল লিস্ট তৈরি করা হয় এবং সেই লিস্টের সব ভেরিয়েবলের উপরে কার্যাবলী (manipulations) করা যায়।


Array এর মৌলিক গঠন

SAS-এ array ব্যবহারের জন্য সাধারণ গঠন নিচে দেওয়া হলো:

ARRAY array_name {number_of_elements} element1 element2 ... elementN;

এখানে:

  • array_name: অ্যারের নাম, যা একটি অক্ষর দিয়ে শুরু হবে।
  • number_of_elements: অ্যারে মধ্যে কতটি উপাদান থাকবে।
  • element1, element2, ...: সেগুলোর ভেরিয়েবল যা আপনি অ্যারেতে অন্তর্ভুক্ত করবেন।

Array ব্যবহার করে ডেটা ম্যানিপুলেশন

১. একাধিক ভেরিয়েবলের উপর গণনা করা

ধরা যাক, আমাদের কিছু ভেরিয়েবল রয়েছে এবং আমরা এই ভেরিয়েবলগুলির ওপর একটি গাণিতিক কাজ করতে চাই, যেমন তাদের যোগফল বের করা। এখানে ARRAY ব্যবহার করে একসাথে কাজ করা যায়।

উদাহরণ: একাধিক ভেরিয়েবলের যোগফল বের করা

data work.sales;
   input Q1 Q2 Q3 Q4;
   array quarters{4} Q1 Q2 Q3 Q4;  /* চারটি ভেরিয়েবল নিয়ে একটি অ্যারে তৈরি */
   total_sales = sum(of quarters{*});  /* quarters অ্যারে দিয়ে যোগফল বের করা */
   datalines;
100 200 150 180
120 220 170 190
;
run;

proc print data=work.sales;
run;

এখানে:

  • array quarters{4} Q1 Q2 Q3 Q4; দ্বারা Q1, Q2, Q3, Q4 এই চারটি ভেরিয়েবল নিয়ে একটি অ্যারে তৈরি করা হয়েছে।
  • sum(of quarters{*}) এই কমান্ডটি অ্যারের সমস্ত ভেরিয়েবলগুলির যোগফল বের করবে।

২. একাধিক ভেরিয়েবলের মান পরিবর্তন করা

আপনি অ্যারে ব্যবহার করে একাধিক ভেরিয়েবলের মান একসাথে পরিবর্তন করতে পারেন। এতে প্রতিটি ভেরিয়েবলের মান আপডেট করা সহজ হয়ে যায়।

উদাহরণ: একাধিক ভেরিয়েবলের মান বাড়ানো

data work.salary;
   input emp1 emp2 emp3 emp4;
   array salaries{4} emp1 emp2 emp3 emp4;  /* চারটি ভেরিয়েবল নিয়ে অ্যারে তৈরি */
   do i = 1 to 4;  /* অ্যারের প্রতিটি উপাদান উপর লুপ চালানো */
      salaries{i} = salaries{i} * 1.1;  /* ১০% বোনাস যোগ করা */
   end;
   datalines;
30000 35000 40000 45000
28000 32000 38000 44000
;
run;

proc print data=work.salary;
run;

এখানে:

  • array salaries{4} emp1 emp2 emp3 emp4; চারটি ভেরিয়েবলকে অ্যারেতে অন্তর্ভুক্ত করা হয়েছে।
  • do i = 1 to 4; লুপের মাধ্যমে অ্যারের প্রতিটি ভেরিয়েবলের ওপর কাজ করা হয়েছে, যেখানে প্রতিটি বেতন ১০% বৃদ্ধি করা হয়েছে।

৩. অ্যারে ব্যবহার করে মিসিং ভ্যালু হ্যান্ডলিং

অ্যারে ব্যবহার করে আপনি একাধিক ভেরিয়েবলের মধ্যে মিসিং ভ্যালু চেক করতে পারেন এবং প্রয়োজনীয় ভ্যালু দিয়ে রিকোড করতে পারেন।

উদাহরণ: মিসিং ভ্যালু হ্যান্ডলিং

data work.performance;
   input emp1 emp2 emp3 emp4;
   array scores{4} emp1 emp2 emp3 emp4;  /* চারটি ভেরিয়েবল নিয়ে অ্যারে তৈরি */
   do i = 1 to 4;
      if scores{i} = . then scores{i} = 50;  /* মিসিং মান থাকলে ৫০ দিয়ে প্রতিস্থাপন */
   end;
   datalines;
75 80 . 90
60 . 85 70
;
run;

proc print data=work.performance;
run;

এখানে:

  • if scores{i} = . then scores{i} = 50; লজিক ব্যবহার করে, যদি কোনো ভেরিয়েবলের মান মিসিং থাকে, তবে সেটি ৫০ দিয়ে প্রতিস্থাপন করা হবে।

৪. ডেটা ট্রান্সফরমেশন

অ্যারে ব্যবহার করে আপনি একাধিক ভেরিয়েবলের মানে একটি নির্দিষ্ট রূপান্তর প্রয়োগ করতে পারেন।

উদাহরণ: স্কোর ক্যালকুলেশন (সাধারণ গাণিতিক রূপান্তর)

data work.scores;
   input math english science;
   array marks{3} math english science;  /* তিনটি ভেরিয়েবল নিয়ে অ্যারে তৈরি */
   total = sum(of marks{*});  /* সব মার্কসের যোগফল */
   average = total / 3;  /* গড় বের করা */
   datalines;
85 90 88
78 82 85
;
run;

proc print data=work.scores;
run;

এখানে:

  • total = sum(of marks{*}); তিনটি ভেরিয়েবলের যোগফল বের করেছে।
  • গড় বের করার জন্য average = total / 3; ব্যবহার করা হয়েছে।

সারাংশ

SAS-এ Array ব্যবহার করে একাধিক ভেরিয়েবলের সাথে কার্যকরভাবে কাজ করা যায়। অ্যারে আপনাকে ডেটার বিভিন্ন ভেরিয়েবলের উপর একযোগভাবে কাজ করতে সহায়তা করে, যেমন গাণিতিক রূপান্তর, ম্যানিপুলেশন, মিসিং ভ্যালু হ্যান্ডলিং, বা ডেটা ট্রান্সফরমেশন। এই পদ্ধতি ব্যবহার করলে কোডের কার্যকারিতা বৃদ্ধি পায় এবং ডেটার বিশ্লেষণ সহজ হয়ে ওঠে।

Content added By

SAS (Statistical Analysis System) এ Nested Logic এবং Complex Condition Handling হল এমন একটি প্রক্রিয়া যেখানে একাধিক শর্ত (conditions) একে অপরের ভিতরে বা একাধিক স্তরে (nested) প্রয়োগ করা হয়। এটি ডেটা ম্যানিপুলেশন, বিশ্লেষণ এবং পরিসংখ্যানগত বিশ্লেষণে অনেক কাজে আসে, বিশেষত যখন শর্তাবলীর মধ্যে জটিলতা থাকে।


Nested Logic এর ধারণা

Nested Logic হল একটি শর্তের ভিতরে আরেকটি শর্ত বসানো, যেখানে একটি শর্তের ফলস্বরূপ যদি অন্য শর্ত পূর্ণ হয়, তখন সেটি কার্যকর হয়। এটি IF-THEN-ELSE শর্তের মাধ্যমে একাধিক স্তরে শর্ত পরীক্ষা করার জন্য ব্যবহৃত হয়।

উদাহরণ: Nested IF-THEN-ELSE Logic

data student_scores;
    input name $ score;
    if score >= 90 then do;
        grade = 'A';
        if score >= 95 then remark = 'Excellent';
        else remark = 'Good';
    end;
    else if score >= 75 then do;
        grade = 'B';
        remark = 'Satisfactory';
    end;
    else grade = 'C';
datalines;
John 92
Sara 80
Mike 68
;
run;

proc print data=student_scores;
run;

এখানে:

  • প্রথমে, score >= 90 শর্তটি পরীক্ষা করা হচ্ছে। যদি এটি সত্য হয়, তাহলে দ্বিতীয় শর্ত score >= 95 এর ভিতরে প্রয়োগ করা হচ্ছে, যেখানে "Excellent" অথবা "Good" কমেন্ট দেওয়া হবে।
  • যদি প্রথম শর্ত মিথ্যা হয়, তাহলে score >= 75 শর্তটি পরীক্ষা করা হচ্ছে, যেখানে "Satisfactory" কমেন্ট দেয়া হচ্ছে।
  • অবশেষে, যদি কোন শর্তই পূর্ণ না হয়, তখন grade = 'C' হবে।

Nested IF এর সুবিধা

  • অতিরিক্ত শর্ত তৈরি করা: একাধিক শর্তের মধ্যে সম্পর্ক তৈরি করা যায়।
  • স্টেপ বাই স্টেপ সিদ্ধান্ত নেওয়া: ধাপে ধাপে সিদ্ধান্ত নেয়ার মাধ্যমে জটিল পরিস্থিতি সহজে নিয়ন্ত্রণ করা যায়।

Complex Condition Handling

Complex Condition Handling হল একাধিক শর্তের মধ্যে সম্পর্ক গঠন করা। যখন একাধিক শর্ত একসাথে প্রয়োগ করতে হয়, তখন AND এবং OR অপারেটর ব্যবহার করা হয়।

Complex Condition Handling উদাহরণ

১. AND Condition Handling

এটি তখন ব্যবহৃত হয় যখন দুটি বা দুটি বেশী শর্ত একই সাথে সত্য হতে হবে।

data student_data;
    input name $ age score;
    if age >= 18 and score >= 75 then eligibility = 'Eligible';
    else eligibility = 'Not Eligible';
datalines;
John 20 85
Sara 17 90
Mike 22 70
;
run;

proc print data=student_data;
run;

এখানে:

  • age >= 18 and score >= 75 শর্তটি তখন সত্য হবে যখন বয়স ১৮ বা তার বেশি এবং স্কোর ৭৫ বা তার বেশি হবে।
  • Eligibility অনুযায়ী প্রাপ্ত তথ্যগুলো "Eligible" বা "Not Eligible" হিসেবে চিহ্নিত করা হবে।

২. OR Condition Handling

এটি তখন ব্যবহৃত হয় যখন দুটি বা দুটি বেশী শর্তের যেকোন একটি সত্য হতে হবে।

data student_status;
    input name $ age score;
    if age < 18 or score < 50 then status = 'Fail';
    else status = 'Pass';
datalines;
John 20 40
Sara 17 85
Mike 22 60
;
run;

proc print data=student_status;
run;

এখানে:

  • age < 18 or score < 50 শর্তটি তখন সত্য হবে যদি ছাত্রের বয়স ১৮ এর কম অথবা স্কোর ৫০ এর কম থাকে।
  • ছাত্রদের স্ট্যাটাস "Fail" অথবা "Pass" হবে।

Multiple Nested Conditions (একাধিক নেস্টেড শর্ত)

যখন একাধিক শর্তের মধ্যে জটিল সম্পর্ক থাকে, তখন Multiple Nested Conditions ব্যবহার করা হয়। এটি একাধিক স্তরে শর্ত প্রয়োগের মাধ্যমে আরও নির্ভুল সিদ্ধান্ত নেয়ার জন্য সহায়ক।

উদাহরণ: Multiple Nested Conditions

data employee;
    input name $ age salary experience;
    if age >= 30 then do;
        if salary >= 50000 then do;
            if experience >= 5 then status = 'Senior';
            else status = 'Mid-Level';
        end;
        else status = 'Junior';
    end;
    else status = 'Trainee';
datalines;
John 32 60000 6
Sara 28 45000 2
Mike 35 55000 3
;
run;

proc print data=employee;
run;

এখানে:

  • প্রথমে age >= 30 শর্তটি পরীক্ষা করা হচ্ছে, তারপর তার ভেতরে salary >= 50000 শর্তটি এবং পরবর্তীতে experience >= 5 শর্তটি।
  • এইভাবে ডেটার প্রতিটি রেকর্ডে status নির্ধারণ করা হবে: "Senior", "Mid-Level", "Junior", অথবা "Trainee"।

Conclusion (সারাংশ)

SAS-এ Nested Logic এবং Complex Condition Handling ডেটা ম্যানিপুলেশন এবং বিশ্লেষণে অত্যন্ত গুরুত্বপূর্ণ টুলস।

  • Nested Logic ব্যবহার করে একাধিক শর্তের মধ্যে সম্পর্ক স্থাপন করা এবং প্রতিটি শর্তের মধ্যে নির্দিষ্ট সিদ্ধান্ত গ্রহণ করা সম্ভব হয়।
  • Complex Condition Handling এর মাধ্যমে AND এবং OR অপারেটর ব্যবহার করে একাধিক শর্তের উপর ভিত্তি করে জটিল সিদ্ধান্ত নেওয়া যায়।
  • এই প্রযুক্তিগুলো ডেটা বিশ্লেষণ আরও নমনীয়, সুনির্দিষ্ট এবং কার্যকরী করে তোলে।
Content added By
Promotion

Are you sure to start over?

Loading...