প্রথমে আপনাকে ওয়ার্কিং ডিরেক্টরি সেট করে নিতে হবে।
setwd("~/R/Shikkhok/3rdclass")
আপনার ওয়ার্কিং ডিরেক্টরিতে এই ফাইলগুলো ডাউনলোড করে কপি করে নিন।
এরপর আমরা গত ক্লাসে তৈরি করা বিভিন্ন অবজেক্ট ও সেটা থেকে তৈরি করা data.frame থেকে একটি csv ফাইল তৈরি করে নেই।
# Creating some vectors age <- c(23, 25, 54, 43, 28) income <- c(14000, 65000, 24000, 42000, 19000) names <- c("Abul", "Babul", "Dobir", "Sobir", "Sumona") joining <- as.Date(c("2012-12-15", "2011-05-17", "2009-03-10", "2008-04-10", "2004-06-11")) gender <- c(1, 1, 1, 1, 2) gender.f <- factor(gender, label=c("m", "f")) likeornot <- c(1, 3, 2, 4, 5) likeornot.f <- factor(likeornot, label=c("very low", "low", "medium", "high", "very high"), ordered=TRUE) # Creating a data frame dataframe <- data.frame(age, income, names, joining, gender.f, likeornot.f) # Saving our data frame write.csv(dataframe, "foo.csv")
শেষ কমান্ডটিতে আপনি দেখছেন একটি
foo.csv
নামে ফাইল তৈরি হয়েছে ওয়ার্কিঙ ডিরেক্টরিতে।
কাজের সুবিধার জন্য সমস্ত অবজেক্ট ডিলিট করে নিন।
rm(list=ls())
বিভিন্ন ধরণের ফাইল R-এ লোড/রিড করা
সিএসভি ফাইল লোড করা
এরপর আগে তৈরি করা csv ফাইলটি ও আরো দু’টি ফাইল যেগুলো ডাউনলোড করেছেন সেগুলো লোড করে নিন।
# Loading csv files csvreloaded <- read.csv("foo.csv") csvcomsep <- read.csv("comsep.csv", header=TRUE, sep=",") csvsemisep <- read.csv("semisep.csv", header=TRUE, sep=";")
এক্সেলে ফাইল তৈরি করলে সেটা আগে csv তে কনভার্ট করে নিয়ে তারপর লোড করা উচিত। লোড করার আগে টেক্সট এডিটরে দেখে নেবেন ফাইলটি সেমিকোলন সেপারেটেড নাকি কমা সেপারেটেড।
এসপিএসএস ফাইল লোড করা
এসপিএসএস ফাইল লোড করতে Rcmdr প্যাকেজের সাহায্য নিন। বিকল্প হিসেবে সরাসরি foreign প্যাকেজ দিয়েও কাজ করতে পারবেন।
# Reading SPSS files using Rcmdr library(Rcmdr) library(foreign, pos=4) spssData <- read.spss("/home/mhaseeb/R/Shikkhok/3rdclass/Bankloan_data.sav", use.value.labels=TRUE, max.value.labels=Inf, to.data.frame=TRUE) colnames(spssData) <- tolower(colnames(spssData))
স্ট্যাটা ফাইল লোড করা
এসপিএসএসের ড্যাটাফাইলের মতোই Rcmdr ব্যবহার করতে পারেন স্ট্যাটা ড্যাটা লোড করতে,
# Loading STATA data stataData <- read.dta("/home/mhaseeb/R/Shikkhok/3rdclass/stataData.dta", convert.dates=TRUE, convert.factors=TRUE, missing.type=TRUE, convert.underscore=TRUE, warn.missing.labels=TRUE)
সাবসেট (subset) তৈরি করা
একটি আর্গুমেন্ট ব্যবহার করে সাবসেট তৈরি
লেকচারের প্রথমে তৈরি করা foo.csv ড্যাটাটা থেকে পুরুষ ও মহিলাদের নিয়ে পৃথক দু’টি সাবসেট তৈরি করতে লিখতে হবে,
# Subsetting a dataset subset1 <- subset(csvreloaded, gender.f=="m") subset2 <- subset(csvreloaded, gender.f=="f")
মাল্টিপল আর্গুমেন্ট ব্যবহার করে সাবসেট তৈরি
# Subsetting using multiple conditions subset3 25 & age<50) subset4 <- subset(csvreloaded, age!=23 | gender.f=="f" )
ড্যাটাসেটের অংশবিশেষ নিয়ে সাবসেট তৈরি
# Selecting observations spssData[1:3,] spssData[,1:2] subset5 <- spssData[1:3, 1:2]
ড্যাটা sort করার পদ্ধতি
ড্যাটা ছোট থেকে বড় ক্রমে সাজিয়ে নিতে,
# Sorting objects/variables sorted1 <- csvreloaded[order(csvreloaded$age),]
ড্যাটা বড় থেকে ছোট ক্রমে সাজিয়ে নিতে,
sorted2 <- csvreloaded[order(-csvreloaded$age),]
মিসিং ভ্যালু কীভাবে ম্যানেজ করবেন
R-এ মিসিং ভ্যালুকে NA লেখা হয়।
কোন ড্যাটায়/অবজেক্টে মিসিং ভ্যালু আছে কিনা সেটা পরীক্ষা করতে is.na কমান্ডটি ব্যবহার করতে হবে,
a <- c(1, 34, 24, 12, 24) # Checking if there is any missing value is.na(a) a1 <- c(1, 34, 24, 12, NA) is.na(a1)
কোন ড্যাটায় 99, 77, 990 ইত্যাদি সংখ্যা দিয়ে মিসিং ভ্যালু লেখা থাকলে সেটা যেভাবে NA করে নিতে হবে,
# Missing value with 99 b <- c(1, 34, 24, 12, 99) mean(b) # Replacing 99 with NA b1 <- ifelse(b == 99, NA, b)
মিসিং ভ্যালুসহ কোন অবজেক্টে কোন ক্যালকুলেশন করতে গেলে
na.rm=TRUE
দিয়ে সেটা na গুলো রিমুভ করে নিতে হবে
mean(b1) # Calculating mean with missing values in the data mean(b1, na.rm=TRUE)
লিংক
১. R স্কৃপ্ট
২. লেকচার স্লাইড
৩. লেকচার ভিডিও ১ ডাউনলোড লিংক
৩. লেকচার ভিডিও ২ ডাউনলোড লিংক
৩. লেকচার ভিডিও ৩ ডাউনলোড লিংক
৩. লেকচার ভিডিও ৪ ডাউনলোড লিংক