Skip to content

Instantly share code, notes, and snippets.

@gawbul
Last active August 29, 2015 13:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gawbul/8712327 to your computer and use it in GitHub Desktop.
Save gawbul/8712327 to your computer and use it in GitHub Desktop.
Spectra data code to produce box plot
# load libraries
library(gdata)
library(reshape2)
library(ggplot2)
# load data - trim last two rows
spectra_data <- read.xls("/Users/stevemoss/Downloads/CORRECTIONS.xls", sheet="Corrected Values")[1:11,]
names(spectra_data)
head(spectra_data)
tail(spectra_data)
# rename columns
colnames(spectra_data) <- c("Participant", rep("Baseline.1", times=5), rep("Z.Back", times=5), rep("T.Back", times=5), rep("Baseline.2", times=5), rep("Baseline.3", times=5))
# separate into individual data frames
baseline_one <- cbind(spectra_data[2:11,1], rep("Baseline.1", times=10), spectra_data[2:11,2:6])
names(baseline_one) <- c("Participant", "Condition", "NAA", "Cho", "Cr", "Glu", "Ins")
head(baseline_one)
zero_back <- cbind(spectra_data[2:11,1], rep("Z.Back", times=10), spectra_data[2:11,7:11])
names(zero_back) <- c("Participant", "Condition", "NAA", "Cho", "Cr", "Glu", "Ins")
head(zero_back)
two_back <- cbind(spectra_data[2:11,1], rep("T.Back", times=10), spectra_data[2:11,12:16])
names(two_back) <- c("Participant", "Condition", "NAA", "Cho", "Cr", "Glu", "Ins")
head(two_back)
baseline_two <- cbind(spectra_data[2:11,1], rep("Baseline.2", times=10), spectra_data[2:11,17:21])
names(baseline_two) <- c("Participant", "Condition", "NAA", "Cho", "Cr", "Glu", "Ins")
head(baseline_two)
baseline_three <- cbind(spectra_data[2:11,1], rep("Baseline.3", times=10), spectra_data[2:11,22:26])
names(baseline_three) <- c("Participant", "Condition", "NAA", "Cho", "Cr", "Glu", "Ins")
head(baseline_three)
# melt into more appropriate format
melted_baseline_one <- melt(baseline_one, id.var=c("Participant", "Condition"), variable.name="Metabolite", value.name="Concentration")
melted_zero_back <- melt(zero_back, id.var=c("Participant", "Condition"), variable.name="Metabolite", value.name="Concentration")
melted_two_back <- melt(two_back, id.var=c("Participant", "Condition"), variable.name="Metabolite", value.name="Concentration")
melted_baseline_two <- melt(baseline_two, id.var=c("Participant", "Condition"), variable.name="Metabolite", value.name="Concentration")
melted_baseline_three <- melt(baseline_three, id.var=c("Participant", "Condition"), variable.name="Metabolite", value.name="Concentration")
# bind data by rows
reshaped_spectra_data <- rbind(melted_baseline_one, melted_zero_back, melted_two_back, melted_baseline_two, melted_baseline_three)
# change concentration to numeric reading
reshaped_spectra_data[,4] <- as.numeric(reshaped_spectra_data$Concentration)
# plot boxplot using ggplot2
ggplot(reshaped_spectra_data, aes(x=Metabolite, y=Concentration, fill=Condition)) + geom_jitter() + geom_boxplot()
# save to pdf too
pdf(file="/Users/stevemoss/Downloads/spectra_data.pdf", width=12, height=8)
ggplot(reshaped_spectra_data, aes(x=Metabolite, y=Concentration, fill=Condition)) + geom_jitter() + geom_boxplot()
dev.off()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment