####read in the data#### ###CSV file### grades_data <- read.csv("K:/teaching/misc_presentations/PubH_7440_spring2011/20110127/grades_example.csv", header = T) ###tab delimited file### grades_data <- read.table("K:/teaching/misc_presentations/PubH_7440_spring2011/20110127/grades_example.txt", header = T) ###Data manipulation example### ###determine each students homework average### grades_data$hwk_avg <- (grades_data$hwk_1 + grades_data$hwk_2 + grades_data$hwk_3 + grades_data$hwk_4 + grades_data$hwk_5)/5 ###determine each students homework average using the built-in function rowMeans### grades_data$hwk_avg2 <- rowMeans(grades_data[,c("hwk_1", "hwk_2", "hwk_3", "hwk_4", "hwk_5")]) ###determine homework average percent### grades_data$hwk_pct <- grades_data$hwk_avg/20 * 100 ###determine basic summary statistics for each exam### ###test 1### ###mean score### mean(grades_data$test_1) ###standard deviation### sd(grades_data$test_1) ###5 number summary (min, 25%, 50%, 75%, max)### quantile(grades_data$test_1, c(0, .25, .5, .75, 1)) ###test 2### ###mean score### mean(grades_data$test_2) ###standard deviation### sd(grades_data$test_2) ###5 number summary (min, 25%, 50%, 75%, max)### quantile(grades_data$test_2, c(0, .25, .5, .75, 1)) ###basic graphical summaries### ###makes plots 2 by 2### par(mfrow = c(2,2)) ###histogram for test 1### hist(grades_data$test_1) ###histogram for test 2### hist(grades_data$test_2) ###plot scatterplot for test 1 and test 2### plot(grades_data$test_1, grades_data$test_2, xlim = c(40,100), ylim = c(40,100), xlab = "Test 1 Score", ylab = "Test 2 Score") ###function to calculate each student's overall course grade### calc_grade <- function(hwk, test1, test2) { ###calculate the overall percentage for the course### course_pct <- round(hwk * .4 + test1 * .3 + test2 * .3, 0) ###create a vector to store course grades### course_grade <- rep(NA, length(course_pct)) ###loop to calculate grades### for(i in 1:length(course_pct)) { if(course_pct[i] > 85) { course_grade[i] <- "A" } else if(course_pct[i] > 80) { course_grade[i] <- "B" } else { course_grade[i] <- "C" } } return(cbind(course_pct, course_grade)) } ###calculate final grades### final_grades <- calc_grade(hwk = grades_data$hwk_pct, test1 = grades_data$test_1, test2 = grades_data$test_2) ###add final grades to the grades data set### grades_data <- cbind(grades_data, final_grades) ###miscellanious### ###help### help('rowMeans') ###load a package### library(MASS) library(BRugs)