## Week 7 Homework ##
#Clear work space
rm(list=ls(all=TRUE))
#Set Working Directory
setwd("C:/Users/kylee/OneDrive/Desktop/304C")
#Load packages
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
library(ggplot2)
#Read data
data <-read.csv("HW7_data.SPRING2025.csv")
#view column names
colnames(data)
## [1] "setup" "paraffin.mass.initial.g"
## [3] "paraffin.mass.final.g" "beaker.mass.empty.g"
## [5] "beaker.mass.filled.g" "temp.initial.C"
## [7] "temp.final.C"
#mutate the data to create a new column for the absolute value of the change in paraffin mass, using the variable name 'delta.paraffin.mass.g'
data <- data |> mutate(delta.paraffin.mass.g = abs(paraffin.mass.final.g - paraffin.mass.initial.g))
#mutate the data to create a new column for the water mass in the beaker, using the variable name 'water.mass.g'
data <- data |> mutate(water.mass.g = beaker.mass.filled.g - beaker.mass.empty.g)
#mutate the data to create a new column for the change in temperature, using the variable name 'delta.temp.C'
data <- data |> mutate(delta.temp.C = temp.final.C - temp.initial.C)
#view column names
colnames(data)
## [1] "setup" "paraffin.mass.initial.g"
## [3] "paraffin.mass.final.g" "beaker.mass.empty.g"
## [5] "beaker.mass.filled.g" "temp.initial.C"
## [7] "temp.final.C" "delta.paraffin.mass.g"
## [9] "water.mass.g" "delta.temp.C"
#mutate the data to create a new column for the amount of energy added to the water, using the variable name 'added.energy.kJ'
#To find the amount of added energy, use the equation: added energy(kJ)=water mass(g)*change in temperature(C)*specific heat of water(kJ/g*C)
#Use 0.00418 (kJ/g*C) for the specific heat of water
data <- data |> mutate(added.energy.kJ = water.mass.g * delta.temp.C * 0.00418)
#mutate the data to create a new column for the observed paraffin energy density, using the variable name 'energy.density.kJ_g'
#To find the energy density, use the equation: energy density (kJ/g) = added energy (kJ) / change in paraffin mass (g)
data <- data |> mutate(energy.density.kJ_g = added.energy.kJ / delta.paraffin.mass.g)
#view column names
colnames(data)
## [1] "setup" "paraffin.mass.initial.g"
## [3] "paraffin.mass.final.g" "beaker.mass.empty.g"
## [5] "beaker.mass.filled.g" "temp.initial.C"
## [7] "temp.final.C" "delta.paraffin.mass.g"
## [9] "water.mass.g" "delta.temp.C"
## [11] "added.energy.kJ" "energy.density.kJ_g"
#create summary statistics table for observed energy density (kJ/g) grouped by setup (initial vs. modified)
Energy.Density <- data |> group_by(setup) |> summarise(mean = mean(energy.density.kJ_g)
,sd = sd(energy.density.kJ_g)
,min = min(energy.density.kJ_g)
,max = max(energy.density.kJ_g))
#view summary statistics table
Energy.Density
## # A tibble: 2 × 5
## setup mean sd min max
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Initial 13.2 2.84 4.24 22.4
## 2 Modified 18.9 17.4 9.31 101.
#view column names
colnames(data)
## [1] "setup" "paraffin.mass.initial.g"
## [3] "paraffin.mass.final.g" "beaker.mass.empty.g"
## [5] "beaker.mass.filled.g" "temp.initial.C"
## [7] "temp.final.C" "delta.paraffin.mass.g"
## [9] "water.mass.g" "delta.temp.C"
## [11] "added.energy.kJ" "energy.density.kJ_g"
#conduct a t-test comparing the observed energy density (kJ/g) between the initial and modified set up
#Hint:(Numeric variable ~ Grouping variable, data = dataset)
t.test(energy.density.kJ_g ~ setup, data = data)
##
## Welch Two Sample t-test
##
## data: energy.density.kJ_g by setup
## t = -1.7289, df = 28.441, p-value = 0.09467
## alternative hypothesis: true difference in means between group Initial and group Modified is not equal to 0
## 95 percent confidence interval:
## -12.560544 1.058042
## sample estimates:
## mean in group Initial mean in group Modified
## 13.16991 18.92116
#view column names
colnames(data)
## [1] "setup" "paraffin.mass.initial.g"
## [3] "paraffin.mass.final.g" "beaker.mass.empty.g"
## [5] "beaker.mass.filled.g" "temp.initial.C"
## [7] "temp.final.C" "delta.paraffin.mass.g"
## [9] "water.mass.g" "delta.temp.C"
## [11] "added.energy.kJ" "energy.density.kJ_g"
#mutate the data to create a new column for the percent error in observed paraffin energy density, using the variable name 'percent.error'
#To find the percent error, use the equation: error (%) = ((absolute value(observed value - expected value)) / expected value) * 100%
data <- data |> mutate(percent.error = ((abs(energy.density.kJ_g - 42))/42)*100)
#view column names
colnames(data)
## [1] "setup" "paraffin.mass.initial.g"
## [3] "paraffin.mass.final.g" "beaker.mass.empty.g"
## [5] "beaker.mass.filled.g" "temp.initial.C"
## [7] "temp.final.C" "delta.paraffin.mass.g"
## [9] "water.mass.g" "delta.temp.C"
## [11] "added.energy.kJ" "energy.density.kJ_g"
## [13] "percent.error"
#create a summary statistics table for percent error grouped by setup (initial vs. modified)
Percent.Error <- data |> group_by(setup) |> summarise(mean = mean(percent.error)
,sd = sd(percent.error)
,min = min(percent.error)
,max = max(percent.error))
#view summary statistics table
Percent.Error
## # A tibble: 2 × 5
## setup mean sd min max
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Initial 68.6 6.76 46.8 89.9
## 2 Modified 66.0 18.1 15.3 139.
#create a boxplot showing the observed energy density of the two experimental setups
#Hint: x is a grouping variable
energy.density.graph <- ggplot(data, aes(x=setup, y=energy.density.kJ_g))+
geom_boxplot(outliers = F)+
geom_hline(yintercept = 42, color="red", linetype="dashed")+
labs(x=NULL, y= "Paraffin Energy Density (kJ/g)", title = "Paraffin Energy Density in Initial and Modified Setups")+
labs(caption = str_wrap("This graph shows a comparison between the intital and modified setups for the observed paraffin energy density which were conducted in a t-test.The expected paraffin energy density is shown for reference as the red dashed line."
, width = 130))+
theme(plot.caption = element_text(hjust = 0.5), plot.caption.position = "plot")
#view graph
energy.density.graph

#save graph
ggsave("HW7.graph.jpg",energy.density.graph,width=8,height=6)