knitr::opts_chunk$set(echo = TRUE)
Note: this uses lm() b/c of limited sample size
library(here) fi <- here::here("R","load_libraries.R") source(fi) load_libraries() library(wrapr)
load(file = "./data/condition_Mhat.RData") any(ls(pattern = "condition.Mhat") == "condition.Mhat")
Remove bad entries (very rare)
i.mig <- which(condition.Mhat$stat.focals == "mig" & is.na(condition.Mhat$sex2) == FALSE) i.res <- which(condition.Mhat$stat.focals == "res" & is.na(condition.Mhat$sex2) == FALSE) i.all <- c(i.mig,i.res) i.BANA.bad <- with(condition.Mhat[,], which(spp.code == "BANA" & sex2 == "M")) i.BAWW.bad <- with(condition.Mhat[,], which(spp.code == "BAWW" & sex2 == "Unknown")) i.all <- i.all[-which(i.all %in% c(i.BANA.bad,i.BAWW.bad)) ] condition.Mhat2 <- condition.Mhat[i.all, ]
No captures of sp (site persist) individuals at Aceitillar for these spp
i.not.in.Aciet <- which(condition.Mhat2$spp.code %in% qc(BFGR,HLCU, NOMO,RLTH, YFGR)) condition.Mhat3 <- condition.Mhat2[-i.not.in.Aciet,]
Check output
with(condition.Mhat2, table(site, spp.code)) with(condition.Mhat3, table(site, spp.code))
Create contrast matrix
#for species that occur at all sites contrst.mat.comm.5 <- rbind("Linear" = c(-2,-1, 0, 1, 2), "Quad" = c(+2,-1,-2,-1,+2)) #for species missing from one site contrst.mat.comm.4 <- rbind("Linear1" = c(-3,-1, 1, 3), "Quad" = c(1,-1,-1,1))
m.hat.spp.to.use <- unique(condition.Mhat3$spp.code)
Fix site names
condition.Mhat3$site <- as.character(condition.Mhat3$site) condition.Mhat3$site <- gsub("Cueva","La Cueva",condition.Mhat3$site) condition.Mhat3$site <- gsub("Caoba","La Caoba",condition.Mhat3$site) condition.Mhat3$site <- gsub("Corral","El Corral",condition.Mhat3$site) summary(factor(condition.Mhat3$site))
Order factor labels
condition.Mhat3$site <- factor(condition.Mhat3$site, levels = c("La Cueva", "La Caoba", "Morelia", "El Corral", "Aceitillar")) with(condition.Mhat3, table(site, spp.code))
#store data in list mhat.multcomp.list <- as.list(m.hat.spp.to.use) names(mhat.multcomp.list) <- m.hat.spp.to.use options(warn = -1) ##loop over each focal species for(i in 1:length(m.hat.spp.to.use)){ i.spp <- which(condition.Mhat3$spp.code == m.hat.spp.to.use[i]) print(m.hat.spp.to.use[i]) length(i.spp) #Note: use lm() mhat.anova.spp <- lm(M.hat.i ~ -1 + site , data = condition.Mhat3[i.spp, ] ) N.sites <- length(coef(mhat.anova.spp)) coef(mhat.anova.spp) if(N.sites == 5) { mhat.mult.comp.spp <- glht(mhat.anova.spp ,linfct =contrst.mat.comm.5 ,alternative = c("two.sided")) } if(N.sites == 4){ mhat.mult.comp.spp <- glht(mhat.anova.spp ,linfct =contrst.mat.comm.4 ,alternative = c("two.sided")) } mhat.mult.comp.summary.spp <- summary(mhat.mult.comp.spp ,test = adjusted(type = "none")) #print(mhat.mult.comp.summary.spp) mhat.multcomp.list[[i]] <- mhat.mult.comp.summary.spp }
source('./R/getmultcompstats.R')
getmultcompstats(mhat.multcomp.list[[3]],dist = "")
mhat.mcomp.stats.tab <- data.frame(Species = names(mhat.multcomp.list), Linear.B = NA, Quad.B = NA, Linear.t = NA, Quad.t = NA, Linear.p = NA, Quad.p = NA, Linear.SE = NA, Quad.SE = NA, siteLaCueva=NA, siteLaCaoba =NA, siteMorelia =NA, siteEl.Corral=NA, siteAceitillar = NA, #CI lo CI.lo.LaCueva=NA, CI.lo.LaCaoba =NA, CI.lo.Morelia =NA, CI.lo.El.Corral=NA, CI.lo.Aceitillar = NA, #CI hi CI.hi.LaCueva=NA, CI.hi.LaCaoba =NA, CI.hi.Morelia =NA, CI.hi.El.Corral=NA, CI.hi.Aceitillar = NA) for(i in 1:length(mhat.multcomp.list)){ print(i) mhat.mcomp.stats.tab[i,-1] <- getmultcompstats(mhat.multcomp.list[[i]], dist = "") }
library(wrapr) j.names <- qc(Species, Linear.B, Linear.SE, Linear.t, Linear.p, Quad.B, Quad.SE, Quad.t, Quad.p, siteLaCueva, CI.lo.LaCueva, CI.hi.LaCueva, siteLaCaoba, CI.lo.LaCaoba, CI.hi.LaCaoba, siteMorelia, CI.lo.Morelia, CI.hi.Morelia, siteEl.Corral, CI.lo.El.Corral, CI.hi.El.Corral, siteAceitillar, CI.lo.Aceitillar, CI.hi.Aceitillar) mhat.mcomp.stats.tab2 <- mhat.mcomp.stats.tab[,j.names]
names(mhat.mcomp.stats.tab2) <- gsub("site","",names(mhat.mcomp.stats.tab2)) names(mhat.mcomp.stats.tab2) <- gsub("^La","La ",names(mhat.mcomp.stats.tab2)) names(mhat.mcomp.stats.tab2) <- gsub("^El.","El ",names(mhat.mcomp.stats.tab2))
write.csv(mhat.mcomp.stats.tab,file = "./tables/ind_spp_condition_trends_with_Aceitillar.csv")
j.names <- qc( LaCueva, CI.lo.LaCueva, CI.hi.LaCueva, LaCaoba, CI.lo.LaCaoba, CI.hi.LaCaoba, Morelia, CI.lo.Morelia, CI.hi.Morelia, ElCorral, CI.lo.El.Corral, CI.hi.El.Corral, Aceitillar, CI.lo.Aceitillar, CI.hi.Aceitillar) #the qc() function doesnt like spaces j.names <- gsub("^La", "La ",j.names) j.names <- gsub("^El", "El ",j.names) mcomp.melt <- melt(data = mhat.mcomp.stats.tab2, id.vars = "Species"#, measure.vars = j.names) #create site variable mcomp.melt$Site <- mcomp.melt$variable mcomp.melt$Site <- gsub("CI.lo.","",mcomp.melt$Site) mcomp.melt$Site <- gsub("CI.hi.","",mcomp.melt$Site) mcomp.melt$Site <- gsub("^La", "La ",mcomp.melt$Site) mcomp.melt$Site <- gsub("^El", "El ",mcomp.melt$Site) mcomp.melt$Site <- gsub("^El .Corral", "El Corral ",mcomp.melt$Site) mcomp.melt$Site <- gsub(" ", " ",mcomp.melt$Site) #create type of var column mcomp.melt$variable2 <- mcomp.melt$variable mcomp.melt$variable2 <- gsub("(CI.lo.)(.*)","\\1",mcomp.melt$variable2) mcomp.melt$variable2 <- gsub("(CI.hi.)(.*)","\\1",mcomp.melt$variable2) mcomp.melt$variable2[-grep("CI",mcomp.melt$variable2)] <- "mean"
Reshape
tab.forplotting <- dcast(data = mcomp.melt, formula = Species + Site ~ variable2, value.var = "value", fun.aggregate = mean) mcomp.melt[which(mcomp.melt$Species == "PAWA"), ] tab.forplotting[which(tab.forplotting$Species == "PAWA"), ]
tab.forplotting$Site <- gsub(" $","",tab.forplotting$Site) tab.forplotting$Site2 <- gsub("La ","",tab.forplotting$Site) tab.forplotting$Site2 <- gsub("El ","",tab.forplotting$Site2) summary(factor(tab.forplotting$Site2)) tab.forplotting$Site2 <- factor(tab.forplotting$Site2, levels = c("Cueva", "Caoba", "Morelia", "Corral", "Aceitillar")) ggplot(data = tab.forplotting, aes(y = mean, x = Site2, group = Species)) + geom_point() + geom_line() + xlab("Site") + ylab("Scaled Mass Index (SMI)") + geom_errorbar(aes(ymax = CI.hi., ymin = CI.lo.), width = 0) + facet_wrap(~Species, scale = "free")+ theme(axis.text.x = element_text(angle = 90, hjust = 1))
save.image("WRKSPC_condition_ANOVA.RData")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.