4. প্রথম প্রোগ্রাম

ইহা প্রথম প্রেমের মতই স্মরণীয় হইয়া থাকিবে! কাজেই মনোযোগ দাও বাছা!

R ওপেন করে নিলে এরকম দেখতে পারবে,

>

এখানে চোখ বন্ধ করে লিখে ফেলো print(“Hello World”) তারপর এন্টার প্রেস করো।

> print("Hello World")
[1] "Hello World"

এরকম একটা আউটপুট আসবে। ওয়াও! কি চমৎকার

print() ফাংশনটি ব্যাবহার করা হয় স্ক্রিনে কোনোকিছু আউটপুট দেয়ার উদ্দেশ্যে। আরেকটা উদাহরন দেয়া যাক।

> print(15)
[1] 15

লক্ষ্য করো এবারে কিন্তু আমরা " " কোটেশন ব্যাবহার করিনি। কারন এবারে আমরা শুধুমাত্র একটি নাম্বার আউটপুট দিয়েছি। সেজন্যে কোনো কোটেশন চিহ্ন ব্যাবহার করতে হয়নি। কিন্তু আগেরবার আমরা একটা স্ট্রিং আউটপুট দিয়েছি সেজন্যে কোটেশন ব্যাবহার করতে হয়েছে। এখানে স্ট্রিং মানে দড়ি না কিন্ত! প্রোগ্রামিং ভাষায় স্ট্রিং বলতে অক্ষরমালা বোঝানো হয়। স্ট্রিং কি, নাম্বার কি, সেসব নিয়ে আমরা এর পরের অধ্যায়ে মাথা ঘামাবো। স্ক্রিনে কোনোকিছু প্রিন্ট করার জন্যে আরো দুটি ফাংশন মাঝেমাঝে ব্যাবহার করা হয়। সেগুলো হলো cat() paste() বেশি কথা না বাড়িয়ে উদাহরণে চলে যাই, তাহলেই তোমাদের সুবিধা হবে।

> cat("Tuhin Rana")
Tuhin Rana
> paste("Tuhin Rana")
[1] "Tuhin Rana"

এই cat মানে হলো concatenation বা জোড়া লাগানো। তারমানে এই ফাংশন দিয়ে অনেকগুলো আউটপুট একসাথে জোড়া দিয়ে প্রিন্ট করা যায়। যেমনঃ

> cat("My Roll is ", 61)
My Roll is 61

এখানে "My Roll is " এবং 61 আলাদা আলাদা দুটি ভ্যালু। আমরা এগুলোকে একসাথে প্রিন্ট করেছি এই ফাংশনের সাহায্যে। আমরা এই ফাংশন মাঝেমাঝেই ব্যাবহার করবো। এখন অন্য কিছু ট্রাই করা যাক,

> 5+7
[1] 12
> 13-2
[1] 11
> 6*12
[1] 72
> 84/5
[1] 16.8

চমৎকার না? R কে ক্যালকুলেটর এর মতও ব্যাবহার করা যায় দারুনভাবে! তোমরা কি লক্ষ্য করেছো? সব সামনে একটা [1] আছে! এখন এটা নিয়ে মাথা ঘামিও না। ধৈর্য্য নিয়ে পড়তে থাকো। কিছুক্ষন পর এইব্যাপারে কথা বলবো। অন্য উদাহরণে চলে যাই

> 2^16
[1] 65536

সূচক বের করার জন্যে ‘^’ এই চিহ্ন ব্যাবহার করা হয়। যদি দুইটি সংখ্যার মধ্যে তুলনা করতে চাই তাহলে সেটা আমরা করতে পারি এভাবে।

> 12 > 9
[1] TRUE
> 12 < 9
[1] FALSE

প্রথম আউটপুট TRUE এবং দ্বিতীয় আউটপুট FALSE. এর মানে নিশ্চয় তোমরা বুঝতে পারছো। R এ এই TRUE আর FALSE কে বলা হয় বুলিয়ান ভ্যালু। কলেজ এ পড়া বুলিয়ান অ্যালজেবরার কথা মনে আছে নিশ্চয়?

AND operator
> TRUE & TRUE
[1] TRUE
> TRUE & FALSE
[1] FALSE
> FALSE & FALSE
[1] FALSE
OR operator
> TRUE | TRUE
[1] TRUE
> TRUE | FALSE
[1] TRUE
> FALSE | FALSE
[1] FALSE
NOT operator
> !TRUE
[1] FALSE
> !FALSE
[1] TRUE

মনে করার চেষ্টা করো। কারন এই বুলিয়ান ভ্যালু দিয়েই আমরা বিরাট বিরাট কাজ করে ফেলবো। যা দেখে তুমি নিজেও অবাক হয়ে যাবে! এখানে ব্যাবহৃত '&', '|' এবং '!' কে বলা হয় যথাক্রমে, AND, OR এবং NOT অপারেটর।

তুমি চাইলে Greater or equal, Less or equal এবং Equal to ও চেক করে দেখতে পারো ‘>=’, ‘<=’, ‘==’ এই চিহ্নগুলো দিয়ে। এটা আমি করবোনা। তোমরা নিজেদের মতো ট্রাই করে দেখো কি পাও।

তোমরা এই যোগ বিয়োগ গুণ ভাগ চিহ্নের সাথে ‘(’ ‘)’ বন্ধনী ব্যাবহার করে নিমেষেই বড়বড় হিসাব করে ফেলতে পারবে। চলো একটা সরল অংক করা যাক। 32 + 7545 / 7 - 563 এটার উত্তরটা বের করার চেষ্টা করো। খাতাকলমে না। অবশ্যই R এ।

Hint: আমরা ছোটবেলায় এরকম সরল অংক করার সময় BODMAS সূত্র পড়েছিলাম। এখানেও ঠিক সেরকম, ভাগের অংশটাকে বন্ধনীতে আবদ্ধ করতে হবে। তারপর গুণ, তারপর যোগ এভাবে...

13-(18/2)+8

ভ্যারিয়েবলঃ এবারে ভ্যারিয়েবল নিয়ে একটু ধারনা দিই। ভ্যারিয়েবল হচ্ছে কন্টেইনারের মত। এর মধ্যে কোনো ভ্যালু স্টোর করে রাখা যায়। পরবর্তীতে যদি দরকার পড়ে তাহলে সরাসরি অই ভ্যালু না লিখে অই ভ্যারিয়েবলটির নাম লিখে অই ভ্যালু পাওয়া যায়। এবং সেটাকে স্বাধীনভাবে ব্যাবহার করা যায়। একটা উদাহরন দেখলেই ব্যাপারটি পরিষ্কার হয়ে যাবে আশাকরি।

> x <- 2
> x
[1] 2
> x+3
[1] 5

এখানে ‘<-’ এই চিহ্নটিকে এসাইনমেন্ট অপারেটর বলা হয়। এর সাহায্যে আমরা ‘2’ কে ‘x’ এর ভিতর ঢুকিয়ে রাখলাম। পরবর্তীতে যদি x লিখে এন্টার প্রেস করি তাহলে দেখবো এর ভেতর 2 আছে। এই x কেই বলা হয় ভেরিয়েবল। একে চাইলে যেকোনো সময় ইউজ করা যাবে। যেমন আমি x+3 লিখে এন্টার প্রেস করার ফলে এনসার এসেছে 5 আশাকরি ভেরিয়েবলের ধারনাটি ক্লিয়ার হয়েছে। এখন থেকে সবসময়ই ভেরিয়েবল ব্যাবহার করবো। ভেরিয়েবলের নাম ইচ্ছামত দেয়া যায়। তবে হাল্কা একটু নিয়মকানুন আছে। যেমন ভেরিয়েবলের নামের মাঝে কোনো অবান্তর চিহ্ন ইউজ করা যাবেনা। তবে আন্ডারস্কোর (_) এবং (.) ডট ব্যাবহার করা যাবে। যেমনঃ total_marks বা total.marks এরকম। চাইলে সংখ্যাও ব্যাবহার করা যায়। তবে সেটা নামের প্রথমে না, মাঝখানে অথবা শেষের দিকে। যেমনঃ marks1, marks2, এরকম। 1marks, 2 marks এরকম লেখা যাবেনা। আশাকরি বিষয়টা বোঝাতে পেরেছি। পরবর্তীতে আমরা object এর সাথে পরিচিত হবো, তখন object আর variable একই মনেহতে । তবে variable আর object কখনোই একজিনিস না। আমরা নেক্সট অধ্যায়ে সেব্যাপারে বিস্তারিত আলোচনা করবো।