wrangling the data

#long form 
data_long <- gather(data, Date, attack, D1:D5, factor_key=TRUE)

data_long$Species<-as.factor(data_long$Species)

#fixing sp names
data_long<-data_long%>%
  mutate(Species=dplyr::recode(Species,"A. cal"="Acal"))
data_long<-data_long%>%
  mutate(Species=dplyr::recode(Species,"E. fas"="Efas"))

#getting the number of dayes the caterpillars were deployed for 
Days<-c(3,3,3,2,2)
Date<-c("D1","D2","D3","D4","D5")
Date1 <- data.frame(Days,Date)

data2<-left_join(data_long,Date1)
## Joining, by = "Date"
#Getting the porportion attack per date 
data3<-data2 %>%
  group_by(Species,Prey,Date) %>%
  na.omit(data2) %>%
  dplyr::summarise(Totalattack2=sum(attack)) %>%
  mutate(Propattack=(Totalattack2/15))
## `summarise()` has grouped output by 'Species', 'Prey'. You can override using
## the `.groups` argument.
data_final<-left_join(data2,data3)%>%
  group_by(Species, Prey) %>%
  filter(!duplicated(Date))
## Joining, by = c("Species", "Prey", "Date")

models

hist(data_final$Propattack)

hist(sqrt(data_final$Propattack))

model<-lmer(sqrt(Propattack)~Prey*Species + (1|Days), data=data_final)
anova(model)
## Type III Analysis of Variance Table with Satterthwaite's method
##               Sum Sq Mean Sq NumDF DenDF F value    Pr(>F)    
## Prey         1.39808 1.39808     1    15 50.8332 3.451e-06 ***
## Species      0.00873 0.00873     1    15  0.3176    0.5814    
## Prey:Species 0.01155 0.01155     1    15  0.4199    0.5268    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

visualization

species.summary<-data_final %>%
  group_by(Species, Prey) %>%
  dplyr::summarize(n=n(),
            mean=mean(Propattack),
            sd=sd(Propattack),
            se=sd(Propattack)/sqrt(n()))
## `summarise()` has grouped output by 'Species'. You can override using the
## `.groups` argument.
ggplot(species.summary, aes(x = Species, fill = Prey, y = mean)) +
  labs(title="Avian Predation Rate by Prey Type", x = "Plant Species", y = "Attack Proportion")+
  geom_col(position = position_dodge()) +
  geom_errorbar(aes(ymin=mean-se, ymax=mean+se), width=.3, position = position_dodge(width=0.9)) +
  scale_y_continuous(expand=expansion(c(0,0.05))) +
  scale_fill_manual("Prey", values=c("dark green","tan"))