#Working with variables and objects.
a<-2
b<-5
class(a) #Checking class of variable
class(b)
c<-"10" #Character class
class(c)
c<-as.numeric(c) #Changing class to numeric
d<-1.5
class(d)
d<-as.integer(d) #Changing class to integer, rounds down
d #Printing
print(d) #Printing
d<-as.numeric(d) #Does not bring back previous decimal part
e<-"swapan" #Character
class(e)
is.character(e) #Check if it is a character
is.character(a)
f<-a*b #Multiplication
f
g<-c(1,2,3) #Create an array
class(g) #Class is still numeric
h<-g*a #Multiply each array value by 'a'
h
#Logical####
i<-a==b
class(i)
i
j<-a==2
j
g
k<-c(10,5,21,39,8)
k[3] #Particular array value, indexing starts with 1
l<-a*k[4] #Multiply a with particular array element
l
#Factors####
m<-c("male","female","male","female","male","male","female")
class(m)
m
m<-as.factor(m) #Changing type to factor/categories
class(m)
levels(m) #Gives output female and male
# Categories are assigned numbers, in alphabetical order by default
# Here male is assigned 2, female is assigned 1
# 1 is not more important than 2, categories are all equal
#Data Frames####
names<-c("harsh","vidhi","aditya")
theory<-c(11,20,31)
lab<-c(30,14,20)
data<-data.frame(names,theory,lab) #DO NOT ADD DOUBLE QUOTES!
View(data) #Viewing the data frame
str(data) #Structure of data frame
names(data) #Column names of data frame
colnames(data) #Column names
# These are all part of base packages of R
# 'data' is an 'object', a data frame variable
rownames(data)
summary(data) #Summary of data
head(data) #First 6 lines of data
tail(data) #Last 6 lines of data
data[1,1] #Row 1 Col 1
data[1,] #Entire row 1
data[,3] #Entire col 3
length(data) #Number of COLUMNS, here 3
length(data$lab) #Number of ROWS in lab column, here 3
#'$' sign important
data
data$total<-data$theory + data$lab #Creating a new col 'total'
View(data)
str(data)
data$per<-(data$total/100)*100
data$rank<-rank(data$per) #Increasing order ranks
data$rank<-rank(-data$per) #Decreasing order ranks
#Always keep a backup of original data!!!!
data<-data[order(data$rank), ] #Getting all rows, because of the comma
View(data2)
data$result<-ifelse(data$per>=50, "pass", "fail") #if-else statement
viva<-c(20,30,40)
data$viva<-viva
data2<-data #BACKUP!!
data<-data[,c(1,2,3,8,4,5,6,7)] #Rearranging columns
#Exercise to add viva column####
data$total<-data$theory + data$lab + data$viva
data$per<-(data$total/150)*100
data$rank<-as.integer(rank(-data$per))
data$result<-ifelse(data$per>=50, "pass", "fail")
data<-data[order(data$rank), ]
#Saving data to csv####
write.csv(data, file = "marks.csv", row.names = FALSE)
file.show("marks.csv")
file.show("students_marks.csv")