Chapter 2 Chapter 1 Introduction to R: পরিচিত

2.1 R সম্পর্কে

R(আর) একটি ফ্রি সফটওয়ার যেটি [GNU free software project] (www.gnu.org) এর অংশ, একটি অন্তরজাতিক প্লাটফর্ম যেটি বিনামূল্য, বিনা লাইসেন্সে এবং বধাহীন সফটওয়ার ব্যবহারে কাজ করে। তাই কোন রকম মূল্য ছাড়াই এটি বধাহীনভাবে ব্যবহার করা যায়। R(আর) এর ডেভেলপমেন্ট এবং লাইসেন্স এর মটো হলো software should be free and not proprietary। তাই R(আর) শিখতে পারলে এটি দিয়ে আমরা অনেক সহজেই কাজ করতে পরি। তাছাড়া R(আর) এর ব্যবহারকারী বিশাল কমউউনিটি প্রতিনিয়ত এর নতুন ব্যবহার এবং নতুন প্যাকেজ (এটি সম্পর্কে আরো পরে) তৈরি করে। এছাড়া যে কোন প্রোগ্রামিং এর একটি বিশেষ গুরুত্বপূর্ণ অংশ হচ্ছে এটির সম্পর্কে পর্যাপ্ত টিউটেরিয়াল, বই এবং সাপোর্ট থাকা। যেটি R(আর) প্রোগ্রামিং এর জন্য পর্যাপ্ত, তাই এটির ব্যবহার করা জানা থাকলে আমাদের শিক্ষাজীবনের জন্য অনেক বড় ভূমিকা রাখবে।

আর আসলে S প্রোগ্রামিং ভাষার একটি ডায়ালেক্ট, এই S প্রোগ্রামিং ভাষাটি ১৯৮০ সালের দিকে AT&T’s Bell labs জন চেম্বারস এবং সহকর্মীর মিলে তৈরি করেছিলেন। আর কে আর S প্রোগ্রামিং ভাষার অন্য রকম ব্যবহার হিসেবে কিন্ত করতে পরি। এই S প্রোগ্রামিং ভাষাটি এখনো ব্যবহার হয় কিন্তু সেটি বিনামূল্য ব্যবহার করা যায় না। তাই R(আর) ব্যবহার করা অনেক সহজ।

R(আর) সম্পর্কে আরো জানতে চাইলে এই ওয়েবসাইটটি দেখুন http://www.r-project.org/

2.2 R ইনস্টল করুন

R(আর) ব্যবহার করতে হলে প্রথমে এটির একটি কপি আমাদের কে নিতে হবে। এরপর আমাদের কম্পিউটারে এটি ইনষ্টল করতে হবে।নিচে Windows 10 কম্পিউটারে কিভাবে এটি ওয়েবসাইট থেকে নামতে হবে সেটি স্ক্রিনশটের মাধ্যমে দেখানো হয়েছে।
প্রথম ১: http://cloud.r-project.org এই ওয়েবসাইটটি আপনার প্রিয় ব্রাইজারে খুলুন । এই স্ক্রীনশটে গুগল ক্রম ব্যবহার করে হয়েছে। এরপর নিচের স্ক্রীনের মতো “Download R for Windows” এ ক্লিক করুন। আপনার কম্পিউটার অপারেটিং সিস্টেম যদি লিনাক্স কিংবা ম্যাকওএস হয় তাহলে আপনার ক্ষেত্রে যেটি প্রযোজ্য সেটিতে ক্লিক করুন।

Download R from Cran

Figure 2.1: Download R from Cran

এই স্ক্রীনে “base” এ ক্লিক করুন। এর অর্থ হলো আমরা R(আর ) এর জন্য যেটি প্রধান ফাইল সেটির কপি নিতে চাই। আপনি যখন আর প্রোগ্রামিং নতুন প্রোগ্রাম লিখতে চান অথবা আরো জটিল কিছু করতে চান শুধু মাত্র সেক্ষেত্রে আমাদের এই “base” ফাইলের সাথে সাথে অন্য ফাইল গুলো নামতে হবে। যেহেতু আমরা শুরু করছি, তাই আমরা শুধু মাত্র base ফাইলটি নিয়েই কাজ করবো।

Download R from Cran

Figure 2.2: Download R from Cran

নিচের স্ক্রীনের মোট R(আর) এর ফাইলটি ডাউনলোড করুন। এই স্ক্রিনে দেখুন আমার যে ফাইলটি ডাউনলোড করছি সেটি R(আর) এর ভার্সন ৪.১.১। এর পর ফাইলটি আপনার কম্পিউটারের পছন্দ মতো ডাইরেক্টরীতে সেভ করুন (সুবিধার জন্য ডেস্কটপে সেভ করতে পারেন) ।

Download R from Cran

Figure 2.3: Download R from Cran

এর পর আপনার ডেস্কটপের ফাইলটিতে দুইটি ক্লিক করুন (অথবা রাইট ক্লিক করে রান করুন)। নিচের স্ক্রীনশট অনুসরণ করে R(আর) ইনষ্টল সম্পন্ন করুন।

নেক্সট ক্লিক করুন:
Install R for first time

Figure 2.4: Install R for first time

নেক্সট ক্লিক করুন:
Install R for first time

Figure 2.5: Install R for first time

নেক্সট ক্লিক করুন:
Install R for first time

Figure 2.6: Install R for first time

নেক্সট ক্লিক করুন:
Install R for first time

Figure 2.7: Install R for first time

নেক্সট ক্লিক করুন:
Install R for first time

Figure 2.8: Install R for first time

নেক্সট ক্লিক করুন:
Install R for first time

Figure 2.9: Install R for first time

ইনষ্টল হবার জন্য একটু অপেক্ষা করুন:
Install R for first time

Figure 2.10: Install R for first time

সবকিছু ঠিক থাকলে আপনার স্ক্রীনে এখন ফিনিশ বাটন দেখবেন, ক্লিক করুন “Finish”
Install R for first time

Figure 2.11: Install R for first time

2.3 প্রথম বার R চালু করুন

আপনার কম্পিউটারে Windows মেনুতে “R x64” অথবা “R x32” লিখে সার্চ দিন, এবং আপনি যে আর প্রোগ্রামটি ইনষ্টল করেছেন সেটির ভার্সন সহ দেখাবে, সেটি ওপেন করুন।

আপনি ঠিক মতো চালু করতে পারলে নিচের স্ক্রীনশটের মতো দেখবেন।

R GUI

Figure 2.12: R GUI

2.4 R ইন্টেরফেস এবং প্রথম কোড

R চালু করার পর প্রথম যে উইন্ডো ওপেন হয় সেটি হচ্ছে, R-GUI (R graphical user interface). আগের ওপেন হয়ে স্ক্রীনটি খেয়াল করলে দেখা যাবে R-console নামে একটি উইন্ডো ওপেন হয়েছে।

2.4.1 মেনুবার (menu bar)

এটি R এর প্রথন মেনু , এখানে R ইন্টেরফেসের বিভিন্ন সেটিংস রয়েছে। সবচেয়ে গুরুত্বপূর্ণ দুটি কাজ আমার এখান থেকে করতে পরি।
R Menu Bar

Figure 2.13: R Menu Bar

  • Change working directory : R এ কাজ করার জন্য আমার আমাদের Working Directory (যেটি কমপুটেরের একটি ফোল্ডার ) ঠিক করে দিতে পরি। তাহলে আমাদের কোড, ডাটা এবং পরবর্তীতে আমাদের যে কোন আউটপুট ঐ ফোল্ডারে থাকবে। এভাবে একটি নির্দিষ্ট কাজের জন্য একটি নির্দিষ্ট Working directory তৈরি করে কাজ করাটা খুবই গুরুত্বপূর্ণ। ওয়ার্কিং ডাইরেক্টরী ঠিক করতে File > change dir.. এবং ফোল্ডার ঠিক করে নিশ্চিত করুন (press ok)।
  • Create new script: ফাইল মেনু থেকে আমরা নতুন script তৈরি করতে পরি। Script একটি খালি পেজ এর মতো , আমরা আমাদের কোড গুলি সেভ করে রাখার জন্য এটি ব্যবহার করবো। নতুন স্ক্রিপ্ট খুলতে ফলো করুন File > new script। এই নতুন স্ক্রিপ্টটির নাম Untitled এবং এটি R Editor এ ওপেন হয়েছে। এটিকে সেভ করার জন্য File > Save as এবং myScript.R নাম দিয়ে সেভ করুন। .R (ডটআর) হলো R স্ক্রিপ্টের ফাইল এক্সটেন্শন।

2.4.2 কনসোল

R Menu Bar

Figure 2.14: R Menu Bar

এখানে R সম্পর্কে বলা আছে। এটির ভার্সন, কপিরাইট এবং বৈজ্ঞানিক আর্টিকেলে কিভাবে সাইট করতে হবে সেটি বলা আছে। এই R console এ আমরা সরাসরি কোড লিখতে পরি। ঠিক যেখানে “>” চিহ্ন দেখা যাচ্ছে সেখানে মাউস ক্লিক করে আমরা টাইপ করতে পরি।

print('Hello World!')
## [1] "Hello World!"

আপনি যদি ঠিক মতো টাইপ করে থাকেন, কনসোলে ঠিক এই স্ক্রীনের মতো মেসেজ/আউটপুট আসবে। এই print শব্দটির পরে “()” ব্রাকেট এর মনে হচ্ছে, এটি একটি ফাংশন। আমার ফাংশন নিয়ে পরে আলোচনা করবো বিস্তারিত। ফাংশন হচ্ছে খুবই স্পেশাল শব্দ যেগুলো দিয়ে আমরা কিছু নির্দিষ্ট কাজের ফাংশন দিয়ে শুধু মাত্র ঐ কাজগুলোই করতে পরি। যেমন “print()” ফাংশনটির নাম দেখেই বুঝতে পর যায় যে এটির কাজ প্রিন্ট করা। কিন্তু কি প্রিন্ট করতে হবে আমাদের কে সেটি বলতে হবে। আমাদের আগের কোডে আমরা print() ফাংশনকে “Hello World!” প্রিন্ট করতে বলেছি।এই যে “Hello World!” টি হল আমাদের ফাংশন argument এরকম আমরা একটি ফাংশন এ অনেক argument দিতে পরি, কিন্তু তার আগে আমাদের কে ঐ ফাংশন সম্পর্কে জানতে হবে। আপাতত আমরা আমাদের প্রিন্ট ফাংশন এ আরো কিছু প্রিন্ট করার জন্য বলব। আমরা দুই প্রিন্ট করতে বলবো।

print(two)

কিন্তু এবার আমার একটি এরর মেসেজ পেলাম, তার মনে আর আমাদের ইনপুট নিয়েছে কিন্তু এটি আমাদের argument যেটি ছিলো সেটি পড়তে পারে নয়। খেয়াল করলে দেখা যাবে আমরা আমাদের argument যেটি সেটি কোন কোটেশন চিহ্ন ছাড়াই দিয়েছি।কিন্তু আরে টেক্সট ইনপুট দিতে গেলে আমাদের কে একটি অথবা দুটি কোটেশন চিহ্ন দিয়ে টেক্সট ইনপুট করতে হবে। নিচের এই কোডটি ঠিক রান করে এবং r আমাদের কে আউটপুট আকারে দেখাচ্ছে।

print('two')
## [1] "two"

আমাদের উইন্ডোতে যে মেসেজ টি আছে সেখানে ‘citation()’ নামের একটা কিওয়ার্ড আছে, আমরা সেটি এই R console এ টাইপ করবো (অথবা কপি পেস্ট করুন), এর পর আমাদের কে কিবোর্ডের “Enter” কি চাপতে হবে। এই citation() এটিও একটি ফাংশন, কারন এই citation শব্দটির পরে “()” চিহ্ন আছে, আবার আমরা এবার কোন argument দেয় নাই, কিন্তু তারপরেও এই ফাংশন কাজ করেছে। এমন অনেক ফাংশন আছে যেগুলির জন্য নতুন argument দিতে হয় না, এর default arguments গুলোই ঐ ফাংশন এর জন্য যথেষ্ট।

citation()

আবার ফাংশন argument দিয়ে আমার একই ফাংশন বিভিন্ন কাজ করতে পরি। যেমন, নিচের কোডটি খেয়াল করুন , rep() ফাংশন যেটি দিয়ে আমরা repeat করতে পরি।

# this function argument is only one
rep(0)
## [1] 0

যদিও R(আর) কনসোলে আমরা “0” দেখতে পাচ্ছি কিন্তু আমরা এইটা repeat করতে চাই কিন্তু সেরকম কিছুই হয় নয়। খেয়াল করলে দেখা যাবে যে, আমরা আসলে এখন পরজন্তু এই repeat() ফাংশন কে শুধু প্রিন্ট করার জন্য argument দিয়েছি, কিন্তু কতবার repeat করতে হবে সেটি বলি নয়।তাহলে আমার আমাদের কোডটি সংশোধন করে পুনরায় চেষ্টা করি। এবার আমরা এই ফাংশন কে শূন্য দিব প্রিন্টের জন্য এবং সেটি চার বার প্রিন্ট করতে বলবো। তাহলে আমাদের সংশোধিত কোডেটি এরকম হলো rep(0,4) এই শূন্য এবং চার হল এই ফাংশন এর জন্য দুটি argument, আরো গুরুত্বপূর্ণ হলো যে। প্রথম agument শূন্য কে প্রিন্ট করতেছে, দুই নম্বর argument এ যেটি সেটি কতোবার প্রিন্ট করতে হবে সেটির জন্য ব্যবহার করতেছে।

# this time this function has two arguments 
rep(0,4)
## [1] 0 0 0 0
হ্যাশ (#) সাইন একটি স্পেশাল কাজ করে, এটি যে লাইনের আগে বা শব্দ বা কোডের আগে থেকে সেটি আর ইনপুট আকারে নেয় না, এই হ্যাশ চিহ্ন দিয়ে আমরা আমাদের কোন লাইনের কোড কি করছে সেটি কমেন্ট করতে পরি। সেক্ষেত্রে হ্যাশ দিয়ে শুরু লাইন এখন থেকে আমরা কোন কোড কি করছে সেটি লিখবো।

2.5 বিল্টইন ফাংশন

R(আর) এর ভিতরে অনেক গুলি ফাংশন বিল্টইন দেব আছে। এগুলি দিয়ে আমরা অনেক কাজ করতে পারি। কিছু ফাংশন এর লিস্ট এখানে দেওয়া হল

name use
mean() to calculate mean
sum() to calculate total sum
plot() to plot images or charts
lm() for making linear models
aov() to perform analysis of variance
glm() to make various generalized linear models