library(readxl)
library(ggplot2)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.1     ✔ stringr   1.5.2
## ✔ lubridate 1.9.4     ✔ tibble    3.3.0
## ✔ purrr     1.1.0     ✔ tidyr     1.3.1
## ── 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
Assignment3 <- read_excel("C:/Users/rache/Downloads/Assignment3.xlsx")

View(Assignment3)
Asst3.1 <- Assignment3
colnames(Asst3.1)<- c("Hour", 
                      "M1_R1" , 
                      "M1_R2" , 
                      "M1_R3", 
                      "M2_R1", 
                      "M2_R2", 
                      "M2_R3", 
                      "M3_R1", 
                      "M3_R2", 
                      "M3_R3")

Asst3.2<-Asst3.1 %>%
  rowwise() %>%
  mutate(M1 = mean(c(M1_R1,M1_R2,M1_R3)),
         M1_sd = sd(c(M1_R1,M1_R2,M1_R3)),
         M2 = mean(c(M2_R1,M2_R2,M2_R3)),
         M2_sd = sd(c(M2_R1,M2_R2,M2_R3)),
         M3 = mean(c(M3_R1,M3_R2,M3_R3)),
         M3_sd = sd(c(M3_R1,M3_R2,M3_R3)))

data_l1 <- Asst3.2[, -c(2:10, 12, 14, 16)]
data_l2 <- data_l1 %>%
  gather("Treatment", "Growth Log", -"Hour")

M1sd <- as.data.frame(Asst3.2[,12])
colnames(M1sd) <- "sd"
M2sd <- as.data.frame(Asst3.2[,14])
colnames(M2sd) <- "sd"
M3sd <- as.data.frame(Asst3.2[,16])
colnames(M3sd) <- "sd"
sd <- rbind(M1sd, M2sd, M3sd)
data_l2 <- cbind(data_l2, sd)

theme_set(theme_bw())
ggplot(data_l2, aes(x=Hour, y=`Growth Log`, color = Treatment)) + 
  geom_errorbar(aes(ymin=`Growth Log`-sd, ymax= `Growth Log`+sd),width=.5) +
  geom_line()+
  geom_point()+
  labs(y="Log Number of Cells")+
  labs(x="Time (h)")