# # Unit 8 - Data frames # # Reshaping a data frame # # Loading data setwd("c:/R") gradesWide <- read.csv("grades.csv") print(gradesWide) # TRANSPOSING # Transposing a data frame transposedDF <- t(gradesWide) print(transposedDF) print(class(transposedDF)) transposedDF <- data.frame(transposedDF) print(class(transposedDF)) print(transposedDF) # WIDE FORMAT TO LONG FORMAT gradesWide <- read.csv("grades.csv") print(gradesWide) # Required library library(reshape2) # Wide to long gradesLong <- melt(gradesWide, id.vars = c("CODE", "ID"), variable.name = "YEAR", value.name = "GRADE") print(gradesLong) # long to wide gradesWide <- dcast(gradesLong, CODE + ID ~ YEAR, value.var = "GRADE") print(gradesWide) # IMPORTANT: avoid including additional columns # in the covnerted data frame gradesWide <- read.csv("grades.csv") gradesWide$AVERAGE <- (gradesWide$YEAR1 + gradesWide$YEAR2 + gradesWide$YEAR3) / 3 print(gradesWide) gradesLong <- melt(gradesWide, id.vars = c("CODE", "ID"), variable.name = "YEAR", value.name = "GRADE") print(gradesLong) # See also: tidyr's gather(), among others