«

»

এপ্রিল 13

স্যাস পরিচিতি – লেকচার ৩ – উপাত্ত পরিবর্ধন ও প্রদর্শন

 

[নিবন্ধনের লিংক] [কোর্সের মূল পাতা] [আগের পর্ব]

এই পর্বের ভূমিকা: 

উপাত্ত আমদানির পর উপাত্তের অংশবিশেষ পরিবর্তন, পরিবর্ধন অথবা বাতিলের প্রয়োজন দেখা দিতে পারে। আজকের পর্বে আমরা দেখব কিভাবে আমদানিকৃত চলকগুলোর দ্বারা নতুন চলক তৈরি করা যায়, কিভাবে শর্ত আরোপণের মাধ্যমে উপাত্ত উপ-ভাগে ভাগ করে দেখা যায়, এবং কিভাবে বিভিন্ন উপায়ে একই উপাত্ত প্রদর্শন করা যায়।

এই পর্বে ব্যবহৃত সমস্ত উপাত্ত এই লিংক থেকে ডাউন-লোড করা যাবে।

 

শুরুর আগের কথা: গত পর্বের অমীমাংসিত প্রশ্নমালার ব্যাখ্যা ও সমাধান

বর্তমান পর্ব শুরুর আগে, আসুন আমরা আগের পর্বের অমীমাংসিত প্রশ্নগুলো নিয়ে একটু আলোচনা করি।

  • গত পর্বের (পর্ব ২) এসো নিজে করি ১-এর সমাধান: প্রদত্ত উদাহরণে DATALINES কমান্ডের বদলে CARDS লিখলে কোন পরিবর্তন হয় না।
  • গত পর্বের (পর্ব ২) এসো নিজে করি ২-এর সমাধান: প্রদত্ত উদাহরণে প্রতিটি তথ্যের মাঝে একটি করে space-এর বদলে একটি করে কমা (comma) দেয়া থাকলে, সেক্ষেত্রে উল্লেখিত কমান্ডের সাথে DLM=’,’ অপশন (option) যোগ করতে হতো।
  • গত পর্বের (পর্ব ২) এসো নিজে করি ৩-এর সমাধান: উল্লেখিত উদাহরণে যদি মাত্র পাঁচটি লাইন (১-৫) স্যাসকে পড়াতে চাই, তাহলে উল্লেখিত কমান্ডের সাথে OBS=5 অপশন (option) যোগ করতে হবে।
  • গত পর্বের (পর্ব ২) এসো নিজে করি ৪-এর সমাধান: উল্লেখিত প্রোগ্রামে MMDDYY10. না লিখে MMDDYY8. লিখলে বার-ও-তারিখ চলকের ১০ ঘরের বদলে ৮ ঘর অক্ষর পড়া হয়।

 

নতুন লেকচারের ভিডিও – পর্ব ৩ – উপাত্ত পরিবর্ধন ও প্রদর্শন

আমার ইউটিউবের চ্যানেলের মাধ্যমে এইখানে ভিডিও অনুবিদ্ধ করলাম, আগ্রহীরা গ্রাহকশ্রেণিভুক্ত হতে পারেন।

আপনার অঞ্চলে ইউটিউব অবরুদ্ধ থাকলে সাথে দিলাম স্ক্রিনকাস্ট মিরর আর ভিডিও ডাউন-লোড (৩৩৯ মেগা) লিঙ্ক। সর্বশেষে আমার ওয়েবসাইটে মিরর

 

লেকচার সারসংক্ষেপ

সম্পূর্ণ ভিডিও দেখার পরে সারসংক্ষেপ দেখুন। নীচে বর্ণিত আলোচনাটি ভিডিওর অবিকল অনুলিখন নয়, সারসংক্ষেপ মাত্র। সম্পূর্ণ ভিডিও লেকচার না দেখলে সারসংক্ষেপ আলোচনা বুঝতে অসুবিধা হতে পারে।

 

শর্ত আরোপণ

  • নতুন চলক তৈরী: নতুন চলক তৈরি করা যায় DATA অংশের মাধ্যমে।

* Creating new variable in Data step;
Data MSnew;
INPUT id trt gender $ age rel1 rel2 rel3;
Total = rel1 + rel2 + rel3;
DATALINES;
1 1 M 29 1 1 1
2 0 M 20 1 0 1
3 1 F 39 0 0 0
4 0 M 19 1 1 1
5 1 M 28 1 0 0
6 0 F 33 0 0 1
7 1 M 20 1 1 0
8 0 M 29 1 0 1
9 1 F 18 0 0 .
;
proc print data = MSnew;
run;

উপরোক্ত স্যাস প্রোগ্রামের ফলাফল:

 

  • শর্ত আরোপণের মাধ্যমে চলক তৈরি: শর্ত আরোপণের মাধ্যমে চলক তৈরি করতে IF THEN ELSE কমান্ড ব্যবহার করা যায়।

* Conditioning in Data step;
Data MScond;
INPUT id trt gender $ age rel1 rel2 rel3;
Total = rel1 + rel2 + rel3;
IF Total >= 2 THEN Elig = ‘Yes’;
ELSE Elig = ‘No’;
DATALINES;
1 1 M 29 1 1 1
2 0 M 20 1 0 1
3 1 F 39 0 0 0
4 0 M 19 1 1 1
5 1 M 28 1 0 0
6 0 F 33 0 0 1
7 1 M 20 1 1 0
8 0 M 29 1 0 1
9 1 F 18 0 0 .
;
proc print data = MScond;
run;

উপরোক্ত স্যাস প্রোগ্রামের ফলাফল:

 

  • উপাত্তকে উপ-ভাগে ভাগ করে প্রদর্শন: IF THEN ELSE DELETE কমান্ডের মাধ্যমে উপাত্তকে উপ-ভাগে ভাগ করে প্রদর্শন করা যায়।

* Subsetting in Data step;
Data MSsub;
INPUT id trt gender $ age rel1 rel2 rel3;
Total = rel1 + rel2 + rel3;
IF Total GE 2 THEN Elig = ‘Yes’;
ELSE Elig = ‘No’;
IF Elig = ‘No’ THEN DELETE;
DATALINES;
1 1 M 29 1 1 1
2 0 M 20 1 0 1
3 1 F 39 0 0 0
4 0 M 19 1 1 1
5 1 M 28 1 0 0
6 0 F 33 0 0 1
7 1 M 20 1 1 0
8 0 M 29 1 0 1
9 1 F 18 0 0 .
;
proc print data = MSsub;
run;

উপরোক্ত স্যাস প্রোগ্রামের ফলাফল:

উপাত্ত প্রদর্শন

  • শিরোনাম সহকারে সারণী: TITLE কমান্ডের মাধ্যমে শিরোনাম দেয়া যায় ফলাফলের সারণীতে।

* printing with title;
Data MS;
INPUT id trt gender $ age rel1 rel2 rel3;
DATALINES;
1 1 M 29 1 1 1
2 0 M 20 1 0 1
3 1 F 39 0 0 0
4 0 M 19 1 1 1
5 1 M 28 1 0 0
6 0 F 33 0 0 1
7 1 M 20 1 1 0
8 0 M 29 1 0 1
9 1 F 18 0 0 .
;
proc print data = MS;
TITLE ‘MS data table’;
run;

উপরোক্ত স্যাস প্রোগ্রামের ফলাফল:

  • উপাত্তকে শর্ত সাপেক্ষে উপ-ভাগে ভাগ করে প্রদর্শন (দ্বিতীয় উপায়): PROC অংশের মাধ্যমে উপাত্তকে শর্ত সাপেক্ষে উপ-ভাগে ভাগ করে প্রদর্শন করা যায়। উদাহরণ ১ – গুণবাচক চলকের শর্ত।

* Subsetting in proc print;
proc print data = MS;
TITLE ‘MS data table for Male’;
WHERE gender = ‘M’;
run;

উপরোক্ত স্যাস প্রোগ্রামের ফলাফল:

উদাহরণ ২- সংখ্যাবাচক চলকের শর্ত।

* Subsetting in proc print;
proc print data = MS;
TITLE ‘MS data table for age > 25’;
WHERE age > 25;
run;

উপরোক্ত স্যাস প্রোগ্রামের ফলাফল:

  • এক চলকের সাপেক্ষে উপাত্ত বাছাই: আগে বাছাই, তারপরে প্রিন্ট।

* sorting by a variable;
proc sort data = MS;
BY age;
run;
proc print data = MS;
TITLE ‘MS data table sorted by age’;
run;

উপরোক্ত স্যাস প্রোগ্রামের ফলাফল:

  • একাধিক চলকের সাপেক্ষে উপাত্ত বাছাই: ক্রমান্বয়ে একাধিক চলকের সাপেক্ষে উপাত্ত বাছাই করা যায় PROC SORT-এর মাধ্যমে।

* sorting by more than one variable;
proc sort data = MS;
BY trt age;
run;
proc print data = MS;
TITLE ‘MS data table sorted by treatment and age’;
run;

উপরোক্ত স্যাস প্রোগ্রামের ফলাফল:

  • নির্বাচিত চলকের প্রদর্শন: সব চলক প্রদর্শন না করে VAR কমানের মাধ্যমে নির্বাচিত কিছু চলক দেখানো যায়।

* printing selected variables;
proc print data = MS;
TITLE ‘MS data table with just 4 variables’;
VAR trt age gender age;
run;

উপরোক্ত স্যাস প্রোগ্রামের ফলাফল:

  • তারিখ ও বার চলকের যথাযথ প্রদর্শন: স্যাস ডিফল্ট FORMAT ব্যবহারে ঠিক ভাবে বার-ও-তারিখ চলক বিভিন্ন ভাবে দেখানো যায়। উদাহরণ ১ – DATE9 ফরমেট।

* printing date variabes properly;
Data MSdate;
INFILE ‘C:UserswildscopDropboxpresentationsasMSdate.txt’ firstobs=2;
INPUT id 1. +7 trt 1. +7 gender $1. +7 age 2. +7 rel1 1. +7 rel2 1. +7 rel3 1. +4 onset MMDDYY10.;
proc print data = MSdate;
VAR id trt gender age onset;
FORMAT onset DATE9.;
TITLE ‘MS data table with dates’;
run;

উপরোক্ত স্যাস প্রোগ্রামের ফলাফল:

উদাহরণ ২ – WORDDATE18 ফরমেট।

* printing date variabes in another way;
proc print data = MSdate;
VAR id trt gender age onset;
FORMAT onset WORDDATE18.;
TITLE ‘MS data table with dates’;
run;

উপরোক্ত স্যাস প্রোগ্রামের ফলাফল:

উদাহরণ ৩ – WEEKDATE18 ফরমেট।

* printing date variabes in yet another way;
proc print data = MSdate;
VAR id trt gender age onset;
FORMAT onset WEEKDATE18.;
TITLE ‘MS data table with dates’;
run;

উপরোক্ত স্যাস প্রোগ্রামের ফলাফল:

  • লেবেল তৈরিকরণ: স্যাস ডিফল্ট FORMAT ছাড়াও নিজের মনের মতন FORMAT বানানো যায় PROC FORMAT দিয়ে।

* creating formats/labels;
Data MSdate;
INFILE ‘C:UserswildscopDropboxpresentationsasMSdate.txt’ firstobs=2;
INPUT id 1. +7 trt 1. +7 gender $1. +7 age 2. +7 rel1 1. +7 rel2 1. +7 rel3 1. +4 onset MMDDYY10.;
proc format;
VALUE agegrp LOW-30 =’younger’
30-HIGH = ‘older’;
VALUE trtgrp 0 =’not-treated’
1 = ‘treated’;
run;
proc print data = MSdate;
TITLE ‘MS data table formatted’;
FORMAT trt trtgrp. age agegrp. onset MMDDYY8.;
run;

উপরোক্ত স্যাস প্রোগ্রামের ফলাফল:

  • পূর্বে তৈরিকৃত লেবেলের ব্যবহার:  তৈরিকৃত FORMAT এক উপাত্তের জন্য সীমাবদ্ধ নয় – একবার তৈরির পর একাধিক উপাত্তে তা প্রয়োগ করা যায়।

* using labels / formats in another dataset;
Data MS;
INPUT id trt gender $ age rel1 rel2 rel3;
DATALINES;
1 1 M 29 1 1 1
2 0 M 20 1 0 1
3 1 F 39 0 0 0
4 0 M 19 1 1 1
5 1 M 28 1 0 0
6 0 F 33 0 0 1
7 1 M 20 1 1 0
8 0 M 29 1 0 1
9 1 F 18 0 0 .
;
proc print data = MS;
TITLE ‘MS data table formatted’;
FORMAT trt trtgrp. age agegrp.;
run;

উপরোক্ত স্যাস প্রোগ্রামের ফলাফল:

কি শিখলাম, সামনে কি শিখতে যাচ্ছি

এই পর্বে আমরা শিখলাম

  • কিভাবে আমদানিকৃত চলকগুলোর দ্বারা নতুন চলক তৈরি করা যায়,
  • কিভাবে শর্ত আরোপণের মাধ্যমে উপাত্ত উপ-ভাগে ভাগ করে দেখা যায়, এবং
  • কিভাবে বিভিন্ন উপায়ে একই উপাত্ত প্রদর্শন করা যায়।

 

পরবর্তী পর্বে আমরা শিখবো কিভাবে উপাত্ত থেকে পরিসংখ্যানের বিভিন্ন সারাংশ বের করা যায়।

 

আজ এ পর্যন্তই। প্রশ্ন থাকলে মন্তব্যের মাধ্যমে জানান; এইখানে অথবা পরবর্তী পর্বে জবাব দেয়ার চেষ্টা করব। আগে যেমন বলেছি, আপনার অন্য কোন কোর্সের বাড়ির কাজের সমাধান দেব না। আশা করি সাথে থাকবেন।

 

সূত্র:

www.ats.ucla.edu/stat/sas/

স্যাস সাপোর্ট

উইকি  পরিসংখ্যান ও সম্ভাবনা পরিভাষা

 

আগের লেকচারের লিঙ্ক:

ভূমিকা

স্যাস পরিচিতি – লেকচার ১ – বেইজ স্যাস খুঁটিনাটি

স্যাস পরিচিতি – লেকচার ২ – উপাত্ত আমদানি

Comments

comments

About the author

এহসান করিম

ঢাকা বিশ্ববিদ্যালয় থেকে ফলিত পরিসংখ্যানে পড়াশুনা করেছি এবং পরবর্তীতে পরিসংখ্যানে উচ্চশিক্ষার জন্য ব্রিটিশ কলাম্বিয়া বিশ্ববিদ্যালয়ে আসি। মূলত গবেষণার বিষয় কারণিক সিদ্ধান্ত।

Leave a Reply