marks_df <- read.csv(file ='/Users/salahkaf/Downloads/marks1.csv')
marks_df
## X X.1 test asgn Prsnt Final q1 q2 q3 q4
## 1 60001 Ahmad 15 14 17 13 0.0 9 2 4.0
## 2 60003 Abu 26 13 18 22 3.0 5 8 6.0
## 3 60006 Samy 21 15 19 25 6.0 7 4 8.0
## 4 60008 Chong 25 10 17 14 2.0 3 4 5.0
## 5 60009 Paul 25 15 16 20 3.0 7 6 4.0
## 6 60011 John 18 15 19 22 4.0 7 4 7.0
## 7 60014 Devi 30 15 19 28 4.0 5 9 10.0
## 8 60015 Pillip 16 15 19 20 4.0 5 6 5.0
## 9 60023 Meilin 18 13 18 22 2.0 5 7 8.0
## 10 60025 Lily 30 14 18 24 5.5 6 5 7.5
## 11 60026 Jamil 12 10 12 12 1.0 5 1 6.0
head(marks_df) #Top 6 rows
## X X.1 test asgn Prsnt Final q1 q2 q3 q4
## 1 60001 Ahmad 15 14 17 13 0 9 2 4
## 2 60003 Abu 26 13 18 22 3 5 8 6
## 3 60006 Samy 21 15 19 25 6 7 4 8
## 4 60008 Chong 25 10 17 14 2 3 4 5
## 5 60009 Paul 25 15 16 20 3 7 6 4
## 6 60011 John 18 15 19 22 4 7 4 7
tail(marks_df) #last 6 rows
## X X.1 test asgn Prsnt Final q1 q2 q3 q4
## 6 60011 John 18 15 19 22 4.0 7 4 7.0
## 7 60014 Devi 30 15 19 28 4.0 5 9 10.0
## 8 60015 Pillip 16 15 19 20 4.0 5 6 5.0
## 9 60023 Meilin 18 13 18 22 2.0 5 7 8.0
## 10 60025 Lily 30 14 18 24 5.5 6 5 7.5
## 11 60026 Jamil 12 10 12 12 1.0 5 1 6.0
dim(marks_df) #Dimensions of DF
## [1] 11 10
str(marks_df) #Structure of DF
## 'data.frame': 11 obs. of 10 variables:
## $ X : int 60001 60003 60006 60008 60009 60011 60014 60015 60023 60025 ...
## $ X.1 : chr "Ahmad" "Abu" "Samy" "Chong" ...
## $ test : int 15 26 21 25 25 18 30 16 18 30 ...
## $ asgn : int 14 13 15 10 15 15 15 15 13 14 ...
## $ Prsnt: int 17 18 19 17 16 19 19 19 18 18 ...
## $ Final: int 13 22 25 14 20 22 28 20 22 24 ...
## $ q1 : num 0 3 6 2 3 4 4 4 2 5.5 ...
## $ q2 : int 9 5 7 3 7 7 5 5 5 6 ...
## $ q3 : int 2 8 4 4 6 4 9 6 7 5 ...
## $ q4 : num 4 6 8 5 4 7 10 5 8 7.5 ...
summary(marks_df) #Summary of Df
## X X.1 test asgn
## Min. :60001 Length:11 Min. :12.00 Min. :10.00
## 1st Qu.:60007 Class :character 1st Qu.:17.00 1st Qu.:13.00
## Median :60011 Mode :character Median :21.00 Median :14.00
## Mean :60013 Mean :21.45 Mean :13.55
## 3rd Qu.:60019 3rd Qu.:25.50 3rd Qu.:15.00
## Max. :60026 Max. :30.00 Max. :15.00
## Prsnt Final q1 q2
## Min. :12.00 Min. :12.00 Min. :0.000 Min. :3.000
## 1st Qu.:17.00 1st Qu.:17.00 1st Qu.:2.000 1st Qu.:5.000
## Median :18.00 Median :22.00 Median :3.000 Median :5.000
## Mean :17.45 Mean :20.18 Mean :3.136 Mean :5.818
## 3rd Qu.:19.00 3rd Qu.:23.00 3rd Qu.:4.000 3rd Qu.:7.000
## Max. :19.00 Max. :28.00 Max. :6.000 Max. :9.000
## q3 q4
## Min. :1.000 Min. : 4.000
## 1st Qu.:4.000 1st Qu.: 5.000
## Median :5.000 Median : 6.000
## Mean :5.091 Mean : 6.409
## 3rd Qu.:6.500 3rd Qu.: 7.750
## Max. :9.000 Max. :10.000
colnames(marks_df) #Attributes names
## [1] "X" "X.1" "test" "asgn" "Prsnt" "Final" "q1" "q2" "q3"
## [10] "q4"
colnames(marks_df)[1] <- "ID"
marks_df
## ID X.1 test asgn Prsnt Final q1 q2 q3 q4
## 1 60001 Ahmad 15 14 17 13 0.0 9 2 4.0
## 2 60003 Abu 26 13 18 22 3.0 5 8 6.0
## 3 60006 Samy 21 15 19 25 6.0 7 4 8.0
## 4 60008 Chong 25 10 17 14 2.0 3 4 5.0
## 5 60009 Paul 25 15 16 20 3.0 7 6 4.0
## 6 60011 John 18 15 19 22 4.0 7 4 7.0
## 7 60014 Devi 30 15 19 28 4.0 5 9 10.0
## 8 60015 Pillip 16 15 19 20 4.0 5 6 5.0
## 9 60023 Meilin 18 13 18 22 2.0 5 7 8.0
## 10 60025 Lily 30 14 18 24 5.5 6 5 7.5
## 11 60026 Jamil 12 10 12 12 1.0 5 1 6.0
colnames(marks_df)[2] <- "StuName"
marks_df
## ID StuName test asgn Prsnt Final q1 q2 q3 q4
## 1 60001 Ahmad 15 14 17 13 0.0 9 2 4.0
## 2 60003 Abu 26 13 18 22 3.0 5 8 6.0
## 3 60006 Samy 21 15 19 25 6.0 7 4 8.0
## 4 60008 Chong 25 10 17 14 2.0 3 4 5.0
## 5 60009 Paul 25 15 16 20 3.0 7 6 4.0
## 6 60011 John 18 15 19 22 4.0 7 4 7.0
## 7 60014 Devi 30 15 19 28 4.0 5 9 10.0
## 8 60015 Pillip 16 15 19 20 4.0 5 6 5.0
## 9 60023 Meilin 18 13 18 22 2.0 5 7 8.0
## 10 60025 Lily 30 14 18 24 5.5 6 5 7.5
## 11 60026 Jamil 12 10 12 12 1.0 5 1 6.0
#6. Remove the first two column from the data frame
# First let us make a backup DF
backup_df <- marks_df
# Removing column 1 & 2
marks_df[,c(1,2)] <- NULL
marks_df
## test asgn Prsnt Final q1 q2 q3 q4
## 1 15 14 17 13 0.0 9 2 4.0
## 2 26 13 18 22 3.0 5 8 6.0
## 3 21 15 19 25 6.0 7 4 8.0
## 4 25 10 17 14 2.0 3 4 5.0
## 5 25 15 16 20 3.0 7 6 4.0
## 6 18 15 19 22 4.0 7 4 7.0
## 7 30 15 19 28 4.0 5 9 10.0
## 8 16 15 19 20 4.0 5 6 5.0
## 9 18 13 18 22 2.0 5 7 8.0
## 10 30 14 18 24 5.5 6 5 7.5
## 11 12 10 12 12 1.0 5 1 6.0
Total <- apply(marks_df,1,sum)
Total
## [1] 74 101 105 80 96 96 120 90 93 110 59
marks_df$Total = Total
marks_df
## test asgn Prsnt Final q1 q2 q3 q4 Total
## 1 15 14 17 13 0.0 9 2 4.0 74
## 2 26 13 18 22 3.0 5 8 6.0 101
## 3 21 15 19 25 6.0 7 4 8.0 105
## 4 25 10 17 14 2.0 3 4 5.0 80
## 5 25 15 16 20 3.0 7 6 4.0 96
## 6 18 15 19 22 4.0 7 4 7.0 96
## 7 30 15 19 28 4.0 5 9 10.0 120
## 8 16 15 19 20 4.0 5 6 5.0 90
## 9 18 13 18 22 2.0 5 7 8.0 93
## 10 30 14 18 24 5.5 6 5 7.5 110
## 11 12 10 12 12 1.0 5 1 6.0 59
cw_function <- function(x) {
x[1]+x[2]+x[3]
}
cw <- cw_function(marks_df)
colnames(cw) <- "CW"
cw
## CW
## 1 46
## 2 57
## 3 55
## 4 52
## 5 56
## 6 52
## 7 64
## 8 50
## 9 49
## 10 62
## 11 34
marks_df["CW"] <-cw
marks_df
## test asgn Prsnt Final q1 q2 q3 q4 Total CW
## 1 15 14 17 13 0.0 9 2 4.0 74 46
## 2 26 13 18 22 3.0 5 8 6.0 101 57
## 3 21 15 19 25 6.0 7 4 8.0 105 55
## 4 25 10 17 14 2.0 3 4 5.0 80 52
## 5 25 15 16 20 3.0 7 6 4.0 96 56
## 6 18 15 19 22 4.0 7 4 7.0 96 52
## 7 30 15 19 28 4.0 5 9 10.0 120 64
## 8 16 15 19 20 4.0 5 6 5.0 90 50
## 9 18 13 18 22 2.0 5 7 8.0 93 49
## 10 30 14 18 24 5.5 6 5 7.5 110 62
## 11 12 10 12 12 1.0 5 1 6.0 59 34
ID <- backup_df[,1]
stuName <- backup_df[,2]
marks_df["ID"] = ID
marks_df["stuName"] = stuName
#Reordering the DF to ma
marks_df
## test asgn Prsnt Final q1 q2 q3 q4 Total CW ID stuName
## 1 15 14 17 13 0.0 9 2 4.0 74 46 60001 Ahmad
## 2 26 13 18 22 3.0 5 8 6.0 101 57 60003 Abu
## 3 21 15 19 25 6.0 7 4 8.0 105 55 60006 Samy
## 4 25 10 17 14 2.0 3 4 5.0 80 52 60008 Chong
## 5 25 15 16 20 3.0 7 6 4.0 96 56 60009 Paul
## 6 18 15 19 22 4.0 7 4 7.0 96 52 60011 John
## 7 30 15 19 28 4.0 5 9 10.0 120 64 60014 Devi
## 8 16 15 19 20 4.0 5 6 5.0 90 50 60015 Pillip
## 9 18 13 18 22 2.0 5 7 8.0 93 49 60023 Meilin
## 10 30 14 18 24 5.5 6 5 7.5 110 62 60025 Lily
## 11 12 10 12 12 1.0 5 1 6.0 59 34 60026 Jamil
require(dplyr)
## Loading required package: dplyr
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
marks_df <- marks_df %>% relocate (ID, stuName,.before= test)
#Final DF
marks_df
## ID stuName test asgn Prsnt Final q1 q2 q3 q4 Total CW
## 1 60001 Ahmad 15 14 17 13 0.0 9 2 4.0 74 46
## 2 60003 Abu 26 13 18 22 3.0 5 8 6.0 101 57
## 3 60006 Samy 21 15 19 25 6.0 7 4 8.0 105 55
## 4 60008 Chong 25 10 17 14 2.0 3 4 5.0 80 52
## 5 60009 Paul 25 15 16 20 3.0 7 6 4.0 96 56
## 6 60011 John 18 15 19 22 4.0 7 4 7.0 96 52
## 7 60014 Devi 30 15 19 28 4.0 5 9 10.0 120 64
## 8 60015 Pillip 16 15 19 20 4.0 5 6 5.0 90 50
## 9 60023 Meilin 18 13 18 22 2.0 5 7 8.0 93 49
## 10 60025 Lily 30 14 18 24 5.5 6 5 7.5 110 62
## 11 60026 Jamil 12 10 12 12 1.0 5 1 6.0 59 34