scr <- read.csv("D:/hw/scr.csv", fileEncoding = 'utf-8')
scr
## sname cname cr gr
## 1 Fisher Stat 3 A
## 2 Fisher Calc 3 B
## 3 Fisher Gene 3 A
## 4 Turing Comp 3 A
## 5 Turing Stat 3 A
## 6 Turing Phil 2 A
## 7 Jobs Comp 3 C
## 8 Jobs Human 2 B
scr$pt <- ifelse(scr$gr=='A',4,
ifelse(scr$gr=='B',3,
ifelse(scr$gr=='C',2,
ifelse(scr$gr=='D',1,0))))
scr
## sname cname cr gr pt
## 1 Fisher Stat 3 A 4
## 2 Fisher Calc 3 B 3
## 3 Fisher Gene 3 A 4
## 4 Turing Comp 3 A 4
## 5 Turing Stat 3 A 4
## 6 Turing Phil 2 A 4
## 7 Jobs Comp 3 C 2
## 8 Jobs Human 2 B 3
scr <- within(scr, cpt<-cr*pt)
scr
## sname cname cr gr pt cpt
## 1 Fisher Stat 3 A 4 12
## 2 Fisher Calc 3 B 3 9
## 3 Fisher Gene 3 A 4 12
## 4 Turing Comp 3 A 4 12
## 5 Turing Stat 3 A 4 12
## 6 Turing Phil 2 A 4 8
## 7 Jobs Comp 3 C 2 6
## 8 Jobs Human 2 B 3 6
fisher <- subset(scr, sname=='Fisher')
turing <- subset(scr, sname=='Turing')
jobs <- subset(scr, sname=='Jobs')
scr
## sname cname cr gr pt cpt
## 1 Fisher Stat 3 A 4 12
## 2 Fisher Calc 3 B 3 9
## 3 Fisher Gene 3 A 4 12
## 4 Turing Comp 3 A 4 12
## 5 Turing Stat 3 A 4 12
## 6 Turing Phil 2 A 4 8
## 7 Jobs Comp 3 C 2 6
## 8 Jobs Human 2 B 3 6
ncrs <- nrow(fisher)
totcr <- sum(fisher$cr)
totcpt <- sum(fisher$cpt)
gpa <- totcpt/totcr
gpafisher <- data.frame(sname='Fisher', ncrs=ncrs, totcr=totcr, totcpt=totcpt, gpa=gpa)
gpafisher
## sname ncrs totcr totcpt gpa
## 1 Fisher 3 9 33 3.666667
gpa <- function(df){
sname <- df$sname[1]
ncrs <- nrow(df)
totcr <- sum(df$cr)
totcpt <- sum(df$cpt)
gpa <- totcpt/totcr
data.frame(sname=sname, ncrs=ncrs, totcr=totcr, totcpt=totcpt, gpa=gpa)
}
gpa(fisher)
## sname ncrs totcr totcpt gpa
## 1 Fisher 3 9 33 3.666667
rbind(gpa(fisher),gpa(turing),gpa(jobs))
## sname ncrs totcr totcpt gpa
## 1 Fisher 3 9 33 3.666667
## 2 Turing 3 8 32 4.000000
## 3 Jobs 2 5 12 2.400000