Analysis for Climbing impact manuscript

Lichen functional groups

Code by Georgia Harrison

March 11, 2021

library packages

library(vegan) #community ecology
library(ggplot2) #data viz
library(dplyr) #data manipulation
library(tidyr) #data manipulation
library(ggpubr) #for combining multiple ggplots into one figure
library(ddpcr) #for joining data sets

lichen functional groups

bring in the data, make functional groupings a factor. Using long data set because that was the long way to add in functional groups.

long <- read.csv("~/Research/Manuscript/Long_data.csv", header=TRUE)

long <- long %>%
  group_by(T_LOCATION) %>% 
  filter(T_LOCATION %in% c("HB", "TR")| n() == 1)
#remove bluff mtn

long <- long %>%
  group_by(P_LOCATION) %>% 
  filter(P_LOCATION %in% c("FACE")| n() == 1)

we only want the lichens

lichen <- long[long$TAXA=="L", ]

lichen$Functional <- factor(lichen$Functional)
summary(lichen$Functional)
##  CRUST  FRUIT   LOBE POWDER    UMB 
##   9686   5344   7014   3340   1336

create a list of columns which we care about (environmetnal factors)

env <- c("CL_UNCL", "T_LOCATION", "SLOPE", "ASPECT_NORTH", "ASPECT_EAST", "ROUTE","PLOT_NUM")

Create richness, diversity and cover values for each fx group

crust <- lichen[lichen$Functional=="CRUST",]
crust <- spread(crust, Species, Abundance)

which(colnames(crust)=="BLBRDOT") #16
## [1] 16
which(colnames(crust)=="YELLWART") #44
## [1] 44
crust.matrix <- crust[,16:44]

crust_incic <- crust [,env]

crust_incic$crust.rich <- rowSums(crust.matrix>0)
crust_incic$crust.div <- diversity(crust.matrix) # shannon is default
crust_incic$crust.cov <- rowSums(crust.matrix) 



fruit <- lichen[lichen$Functional=="FRUIT",]
fruit <- spread(fruit, Species, Abundance)
which(colnames(fruit)=="WHITREIN") #31
## [1] 31
fruit.matrix <- fruit[,16:31]

fruit_indic <- fruit [,env]

fruit_indic$fruit.rich <- rowSums(fruit.matrix>0)
fruit_indic$fruit.div <- diversity(fruit.matrix) # shannon is default
fruit_indic$fruit.cov <- rowSums(fruit.matrix) 



lobe <- lichen[lichen$Functional=="LOBE",]
lobe <- spread(lobe, Species, Abundance)
which(colnames(lobe)=="WHITEFOL") #31
## [1] 36
lobe.matrix <- lobe[,16:36]

lobe_indic <- lobe [,env]

lobe_indic$lobe.rich <- rowSums(lobe.matrix>0)
lobe_indic$lobe.div <- diversity(lobe.matrix) # shannon is default
lobe_indic$lobe.cov <- rowSums(lobe.matrix) 



powder <- lichen[lichen$Functional=="POWDER",]
powder <- spread(powder, Species, Abundance)
which(colnames(powder)=="YELPDR") #25
## [1] 25
powder.matrix <- powder[,16:25]

powder_indic <- powder [,env]

powder_indic$powder.rich <- rowSums(powder.matrix>0)
powder_indic$powder.div <- diversity(powder.matrix) # shannon is default
powder_indic$powder.cov <- rowSums(powder.matrix) 



umb <- lichen[lichen$Functional=="UMB",]
umb <- spread(umb, Species, Abundance)
which(colnames(umb)=="TOADSK") #19
## [1] 19
umb.matrix <- umb[,16:19]


umb_indic <- umb [,env]

umb_indic$umb.rich <- rowSums(umb.matrix>0)
umb_indic$umb.div <- diversity(umb.matrix) # shannon is default
umb_indic$umb.cov <- rowSums(umb.matrix) 

merge all the lichen functional groups to one data set

L_merge <- merge(crust_incic, fruit_indic, by.x=env, by.y=env)
L_merge <- merge(L_merge, lobe_indic, by.x=env, by.y=env)
L_merge <- merge(L_merge, powder_indic, by.x=env, by.y=env)
L_merge <- merge(L_merge, umb_indic, by.x=env, by.y=env)

head(L_merge)
##   CL_UNCL T_LOCATION SLOPE ASPECT_NORTH ASPECT_EAST
## 1 CLIMBED         HB   100         0.64       -0.77
## 2 CLIMBED         HB   100         0.64       -0.77
## 3 CLIMBED         HB   100         0.64       -0.77
## 4 CLIMBED         HB   100         0.64       -0.77
## 5 CLIMBED         HB   100         0.64       -0.77
## 6 CLIMBED         HB   100         0.64       -0.77
##                           ROUTE PLOT_NUM crust.rich crust.div crust.cov
## 1                    BONGO FURY        1          3 1.0027400        17
## 2                    BONGO FURY        2          1 0.0000000         9
## 3                    BONGO FURY        3          3 0.9908354        15
## 4                    BONGO FURY        4          2 0.6914161        17
## 5 IF YOU BOLT IT THEY WILL COME        1          4 1.2068519        25
## 6 IF YOU BOLT IT THEY WILL COME       10          1 0.0000000         9
##   fruit.rich fruit.div fruit.cov lobe.rich lobe.div lobe.cov powder.rich
## 1          2 0.6365142         3         1        0        2           1
## 2          1 0.0000000         4         0        0        0           1
## 3          0 0.0000000         0         0        0        0           2
## 4          2 0.6365142         3         0        0        0           1
## 5          0 0.0000000         0         0        0        0           0
## 6          0 0.0000000         0         0        0        0           2
##   powder.div powder.cov umb.rich   umb.div umb.cov
## 1  0.0000000          2        1 0.0000000       9
## 2  0.0000000          6        2 0.4741393      11
## 3  0.4101163          7        1 0.0000000       9
## 4  0.0000000          5        1 0.0000000       9
## 5  0.0000000          0        1 0.0000000       7
## 6  0.5004024          5        0 0.0000000       0

tidy up the data for analysis and figures

  1. Subset out richness, diversity and cover for each fx group (find column numbers). Still include plot metadata
  2. rename functional groups to consistent names
  3. convert to long format
  4. Merge all together so you have a long dataset with richness, diversity and cover for each functional group at each plot
    • note that we still have individual richness, diversity and cover data frames if we need to run analyisis in those formats
#use head(L_merge) to keep track of column labels

#metadata
which(colnames(L_merge)=="CL_UNCL") #1
## [1] 1
which(colnames(L_merge)=="PLOT_NUM") #7
## [1] 7

listofnames <- c("crust", "fruit", "lobe", "powder", "umb")

#richness
which(colnames(L_merge)=="crust.rich") #8
## [1] 8
which(colnames(L_merge)=="umb.rich") #20
## [1] 20
#r <- c(1:7, 8, 11, 14, 17, 20) #these columms with metadata and richness
richness <- L_merge[, c(1:7, 8, 11, 14, 17, 20)]
colnames(richness)[8:12] <- listofnames #rename columns

richness <- gather(richness, fx, richness, 8:12) #long format
#fx is functional group


#diversity
which(colnames(L_merge)=="crust.div") #9
## [1] 9
which(colnames(L_merge)=="umb.div") #21
## [1] 21
#d<- c(1:7, 9, 12, 15, 18, 21)
diversity <- L_merge[, c(1:7, 9, 12, 15, 18, 21)]
colnames(diversity)[8:12] <- listofnames #rename columns

diversity <- gather(diversity, fx, diversity, 8:12) #long format
  
#cover
which(colnames(L_merge)=="crust.cov") #10
## [1] 10
which(colnames(L_merge)=="umb.cov") #22
## [1] 22
#c<- c(1:7, 10, 13, 16, 19, 22)
cover <- L_merge[,c(1:7, 10, 13, 16, 19, 22)]
colnames(cover)[8:12] <- listofnames #rename columns

cover <- gather(cover, fx, cover, 8:12) #long format

  


#combine them all together
env1 <- c("CL_UNCL", "T_LOCATION", "SLOPE", "ASPECT_NORTH", "ASPECT_EAST", "ROUTE","PLOT_NUM", "fx")
lindic <- merge(richness, diversity, by.x=env1, by.y=env1)
lindic <- merge(lindic, cover, by.x=env1, by.y=env1)
head(lindic)
##   CL_UNCL T_LOCATION SLOPE ASPECT_NORTH ASPECT_EAST      ROUTE PLOT_NUM     fx
## 1 CLIMBED         HB   100         0.64       -0.77 BONGO FURY        1  crust
## 2 CLIMBED         HB   100         0.64       -0.77 BONGO FURY        1  fruit
## 3 CLIMBED         HB   100         0.64       -0.77 BONGO FURY        1   lobe
## 4 CLIMBED         HB   100         0.64       -0.77 BONGO FURY        1 powder
## 5 CLIMBED         HB   100         0.64       -0.77 BONGO FURY        1    umb
## 6 CLIMBED         HB   100         0.64       -0.77 BONGO FURY        2  crust
##   richness diversity cover
## 1        3 1.0027400    17
## 2        2 0.6365142     3
## 3        1 0.0000000     2
## 4        1 0.0000000     2
## 5        1 0.0000000     9
## 6        1 0.0000000     9

Figures for lichen fx groups

theme_set(
    theme(
      panel.grid.major = element_blank(), 
      panel.grid.minor = element_blank(), 
      panel.background = element_blank(), 
      axis.text = element_text(size=11, colour = "black"),  
      axis.line = element_line(colour = "black"), 
      axis.title = element_text(size=16, colour = "black"),
      legend.title = element_text(size = 16, colour = "black"), 
      legend.text = element_text(size=16, colour= "black")
      ))

#richness
p <- ggplot(lindic, aes(x=T_LOCATION, y=richness, fill=CL_UNCL))
p <- p + geom_violin(trim=FALSE)+theme_classic()
p <- p + labs(y="Species Richness", x="Site", title="Species richness by lichen functional group")
p <- p + facet_wrap(~fx)
pr <- p + scale_fill_grey(name="Climbing", labels = c("Climbed", "Unclimbed"))
plot(pr)

p <- ggplot(lindic, aes(x=T_LOCATION, y=diversity, fill=CL_UNCL))
p <- p + geom_violin(trim=FALSE)+theme_classic()
p <- p + labs(y="Shannon Diversity Index", x="Site", title="Diversity by lichen functional group")
p <- p + facet_wrap(~fx)
pd <- p + scale_fill_grey(name="Climbing", labels = c("Climbed", "Unclimbed"))
plot(pd)

p <- ggplot(lindic, aes(x=T_LOCATION, y=cover, fill=CL_UNCL))
p <- p + geom_violin(trim=TRUE)+theme_classic()
p <- p + labs(y="Relative abundance", x="Site")
p <- p + theme(legend.position = "top")
p <- p + facet_wrap(~fx)
pc <- p + scale_fill_grey(name="Climbing", labels = c("Climbed", "Unclimbed"))
plot(pc)

ggsave("lichen_fc_cover.jpeg", plot = pc,  device = "jpeg", width = 8, height = 5, dpi = 300, scale = 1)

might also be interesting to flip climbing and site

p <- ggplot(lindic, aes(x=CL_UNCL, y=richness, fill=T_LOCATION))
p <- p + geom_violin(trim=FALSE)+theme_classic()
p <- p + labs(y="Species Richness", x="Site", title="Species richness by lichen functional group")
p <- p + facet_wrap(~fx)
pr <- p + scale_fill_grey(name="Site", labels = c("HB", "TR"))
plot(pr)

p <- ggplot(lindic, aes(x=CL_UNCL, y=cover, fill=T_LOCATION))
p <- p + geom_violin(trim=FALSE)+theme_classic()
p <- p + labs(y="Relative abundance", x="Site", title="Cover by lichen functional group")
p <- p + facet_wrap(~fx)
pc <- p + scale_fill_grey(name="Site", labels = c("HB", "TR"))
plot(pc)

anovas on lichen functional groups

richness cover and diversity by functional group

aov <-aov(richness~fx, data=lindic)
summary(aov)
##               Df Sum Sq Mean Sq F value Pr(>F)    
## fx             4  349.2   87.29   105.1 <2e-16 ***
## Residuals   1665 1383.1    0.83                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(aov)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = richness ~ fx, data = lindic)
## 
## $fx
##                     diff        lwr         upr     p adj
## fruit-crust  -1.41616766 -1.6087633 -1.22357202 0.0000000
## lobe-crust   -0.68263473 -0.8752304 -0.49003909 0.0000000
## powder-crust -0.64670659 -0.8393022 -0.45411094 0.0000000
## umb-crust    -0.91017964 -1.1027753 -0.71758400 0.0000000
## lobe-fruit    0.73353293  0.5409373  0.92612858 0.0000000
## powder-fruit  0.76946108  0.5768654  0.96205672 0.0000000
## umb-fruit     0.50598802  0.3133924  0.69858367 0.0000000
## powder-lobe   0.03592814 -0.1566675  0.22852379 0.9864548
## umb-lobe     -0.22754491 -0.4201406 -0.03494927 0.0111832
## umb-powder   -0.26347305 -0.4560687 -0.07087741 0.0018085
aov <-aov(diversity~fx, data=lindic)
summary(aov)
##               Df Sum Sq Mean Sq F value Pr(>F)    
## fx             4  38.99   9.748   78.64 <2e-16 ***
## Residuals   1665 206.39   0.124                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(aov)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = diversity ~ fx, data = lindic)
## 
## $fx
##                     diff         lwr         upr     p adj
## fruit-crust  -0.43645137 -0.51085018 -0.36205256 0.0000000
## lobe-crust   -0.21297549 -0.28737430 -0.13857668 0.0000000
## powder-crust -0.24523746 -0.31963626 -0.17083865 0.0000000
## umb-crust    -0.38514911 -0.45954792 -0.31075030 0.0000000
## lobe-fruit    0.22347587  0.14907707  0.29787468 0.0000000
## powder-fruit  0.19121391  0.11681510  0.26561272 0.0000000
## umb-fruit     0.05130225 -0.02309655  0.12570106 0.3268577
## powder-lobe  -0.03226196 -0.10666077  0.04213685 0.7605319
## umb-lobe     -0.17217362 -0.24657243 -0.09777481 0.0000000
## umb-powder   -0.13991166 -0.21431047 -0.06551285 0.0000031
aov <-aov(cover~fx, data=lindic)
summary(aov)
##               Df Sum Sq Mean Sq F value Pr(>F)    
## fx             4  15679    3920   175.9 <2e-16 ***
## Residuals   1665  37106      22                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(aov)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = cover ~ fx, data = lindic)
## 
## $fx
##                    diff          lwr       upr     p adj
## fruit-crust  -9.5329341 -10.53050616 -8.535362 0.0000000
## lobe-crust   -5.5029940  -6.50056604 -4.505422 0.0000000
## powder-crust -4.7275449  -5.72511693 -3.729973 0.0000000
## umb-crust    -3.7784431  -4.77601514 -2.780871 0.0000000
## lobe-fruit    4.0299401   3.03236810  5.027512 0.0000000
## powder-fruit  4.8053892   3.80781720  5.802961 0.0000000
## umb-fruit     5.7544910   4.75691899  6.752063 0.0000000
## powder-lobe   0.7754491  -0.22212292  1.773021 0.2108002
## umb-lobe      1.7245509   0.72697887  2.722123 0.0000251
## umb-powder    0.9491018  -0.04847023  1.946674 0.0711385

by climbing and site

aov <-aov(richness~CL_UNCL*T_LOCATION, data=lindic)
summary(aov)
##                      Df Sum Sq Mean Sq F value   Pr(>F)    
## CL_UNCL               1    0.9   0.860   0.837    0.360    
## T_LOCATION            1   16.7  16.675  16.223 5.88e-05 ***
## CL_UNCL:T_LOCATION    1    2.3   2.319   2.256    0.133    
## Residuals          1666 1712.4   1.028                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(aov)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = richness ~ CL_UNCL * T_LOCATION, data = lindic)
## 
## $CL_UNCL
##                        diff         lwr       upr    p adj
## UNCLIMBED-CLIMBED 0.0468254 -0.05356682 0.1472176 0.360408
## 
## $T_LOCATION
##            diff       lwr      upr    p adj
## TR-HB 0.2555853 0.1304336 0.380737 6.46e-05
## 
## $`CL_UNCL:T_LOCATION`
##                                 diff         lwr       upr     p adj
## UNCLIMBED:HB-CLIMBED:HB   -0.0862500 -0.38256121 0.2100612 0.8773073
## CLIMBED:TR-CLIMBED:HB      0.1698864 -0.05418595 0.3939587 0.2078066
## UNCLIMBED:TR-CLIMBED:HB    0.2770833  0.03908044 0.5150862 0.0148268
## CLIMBED:TR-UNCLIMBED:HB    0.2561364  0.02583076 0.4864420 0.0222593
## UNCLIMBED:TR-UNCLIMBED:HB  0.3633333  0.11945294 0.6072137 0.0007622
## UNCLIMBED:TR-CLIMBED:TR    0.1071970 -0.04074124 0.2551352 0.2443417
aov <-aov(diversity~CL_UNCL*T_LOCATION, data=lindic)
summary(aov)
##                      Df Sum Sq Mean Sq F value   Pr(>F)    
## CL_UNCL               1   0.26  0.2602    1.79    0.181    
## T_LOCATION            1   2.54  2.5369   17.45 3.11e-05 ***
## CL_UNCL:T_LOCATION    1   0.34  0.3402    2.34    0.126    
## Residuals          1666 242.25  0.1454                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(aov)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = diversity ~ CL_UNCL * T_LOCATION, data = lindic)
## 
## $CL_UNCL
##                        diff         lwr       upr     p adj
## UNCLIMBED-CLIMBED 0.0257543 -0.01200529 0.0635139 0.1811493
## 
## $T_LOCATION
##            diff        lwr       upr    p adj
## TR-HB 0.0996896 0.05261746 0.1467617 3.44e-05
## 
## $`CL_UNCL:T_LOCATION`
##                                  diff          lwr        upr     p adj
## UNCLIMBED:HB-CLIMBED:HB   -0.02506445 -0.136513247 0.08638434 0.9385897
## CLIMBED:TR-CLIMBED:HB      0.06688456 -0.017393691 0.15116280 0.1734678
## UNCLIMBED:TR-CLIMBED:HB    0.11591561  0.026397780 0.20543343 0.0049142
## CLIMBED:TR-UNCLIMBED:HB    0.09194901  0.005326292 0.17857172 0.0324500
## UNCLIMBED:TR-UNCLIMBED:HB  0.14098006  0.049251582 0.23270853 0.0004676
## UNCLIMBED:TR-CLIMBED:TR    0.04903105 -0.006611580 0.10467368 0.1064671
aov <-aov(cover~CL_UNCL*T_LOCATION, data=lindic)
summary(aov)
##                      Df Sum Sq Mean Sq F value Pr(>F)  
## CL_UNCL               1     28   27.70   0.878 0.3489  
## T_LOCATION            1    176  176.35   5.588 0.0182 *
## CL_UNCL:T_LOCATION    1      5    4.93   0.156 0.6928  
## Residuals          1666  52576   31.56                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(aov)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = cover ~ CL_UNCL * T_LOCATION, data = lindic)
## 
## $CL_UNCL
##                        diff        lwr       upr     p adj
## UNCLIMBED-CLIMBED 0.2657357 -0.2905418 0.8220131 0.3489137
## 
## $T_LOCATION
##            diff       lwr      upr     p adj
## TR-HB 0.8311637 0.1376931 1.524634 0.0188473
## 
## $`CL_UNCL:T_LOCATION`
##                                diff        lwr      upr     p adj
## UNCLIMBED:HB-CLIMBED:HB   0.1108333 -1.5310394 1.752706 0.9981413
## CLIMBED:TR-CLIMBED:HB     0.7113636 -0.5302303 1.952958 0.4538835
## UNCLIMBED:TR-CLIMBED:HB   1.1041667 -0.2146172 2.422951 0.1370130
## CLIMBED:TR-UNCLIMBED:HB   0.6005303 -0.6756026 1.876663 0.6204473
## UNCLIMBED:TR-UNCLIMBED:HB 0.9933333 -0.3580180 2.344685 0.2325392
## UNCLIMBED:TR-CLIMBED:TR   0.3928030 -0.4269287 1.212535 0.6063474

Each functioanl group

Need to use L_merge df for this.
Just crust first

aov <-aov(crust.rich~CL_UNCL*T_LOCATION, data=L_merge)
summary(aov)
##                     Df Sum Sq Mean Sq F value   Pr(>F)    
## CL_UNCL              1    8.3   8.254   7.274 0.007355 ** 
## T_LOCATION           1   14.6  14.619  12.884 0.000382 ***
## CL_UNCL:T_LOCATION   1    0.4   0.417   0.367 0.544986    
## Residuals          330  374.4   1.135                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(aov)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = crust.rich ~ CL_UNCL * T_LOCATION, data = L_merge)
## 
## $CL_UNCL
##                         diff        lwr         upr     p adj
## UNCLIMBED-CLIMBED -0.3243284 -0.5608878 -0.08776914 0.0073549
## 
## $T_LOCATION
##             diff        lwr      upr     p adj
## TR-HB -0.5351113 -0.8300126 -0.24021 0.0004107
## 
## $`CL_UNCL:T_LOCATION`
##                                 diff        lwr         upr     p adj
## UNCLIMBED:HB-CLIMBED:HB   -0.5166667 -1.2156790  0.18234568 0.2263854
## CLIMBED:TR-CLIMBED:HB     -0.6250000 -1.1535973 -0.09640267 0.0130216
## UNCLIMBED:TR-CLIMBED:HB   -0.9583333 -1.5197936 -0.39687310 0.0000833
## CLIMBED:TR-UNCLIMBED:HB   -0.1083333 -0.6516353  0.43496862 0.9555036
## UNCLIMBED:TR-UNCLIMBED:HB -0.4416667 -1.0169922  0.13365887 0.1967541
## UNCLIMBED:TR-CLIMBED:TR   -0.3333333 -0.6823267  0.01565999 0.0671877
aov <-aov(crust.div~CL_UNCL*T_LOCATION, data=L_merge)
summary(aov)
##                     Df Sum Sq Mean Sq F value Pr(>F)    
## CL_UNCL              1   0.68  0.6843   3.928 0.0483 *  
## T_LOCATION           1   2.15  2.1532  12.361 0.0005 ***
## CL_UNCL:T_LOCATION   1   0.15  0.1473   0.845 0.3585    
## Residuals          330  57.48  0.1742                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(aov)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = crust.div ~ CL_UNCL * T_LOCATION, data = L_merge)
## 
## $CL_UNCL
##                         diff        lwr           upr     p adj
## UNCLIMBED-CLIMBED -0.0933831 -0.1860688 -0.0006974309 0.0483107
## 
## $T_LOCATION
##             diff        lwr         upr     p adj
## TR-HB -0.2053658 -0.3209103 -0.08982133 0.0005361
## 
## $`CL_UNCL:T_LOCATION`
##                                  diff        lwr         upr     p adj
## UNCLIMBED:HB-CLIMBED:HB   -0.19812743 -0.4720056  0.07575072 0.2439140
## CLIMBED:TR-CLIMBED:HB     -0.25754981 -0.4646581 -0.05044151 0.0078865
## UNCLIMBED:TR-CLIMBED:HB   -0.34667937 -0.5666636 -0.12669515 0.0003429
## CLIMBED:TR-UNCLIMBED:HB   -0.05942238 -0.2722921  0.15344730 0.8887687
## UNCLIMBED:TR-UNCLIMBED:HB -0.14855194 -0.3739687  0.07686481 0.3244206
## UNCLIMBED:TR-CLIMBED:TR   -0.08912956 -0.2258677  0.04760858 0.3342273
aov <-aov(crust.cov~CL_UNCL*T_LOCATION, data=L_merge)
summary(aov)
##                     Df Sum Sq Mean Sq F value   Pr(>F)    
## CL_UNCL              1    458   458.2  13.291  0.00031 ***
## T_LOCATION           1   1131  1131.0  32.810 2.29e-08 ***
## CL_UNCL:T_LOCATION   1      6     6.3   0.182  0.66957    
## Residuals          330  11375    34.5                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(aov)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = crust.cov ~ CL_UNCL * T_LOCATION, data = L_merge)
## 
## $CL_UNCL
##                        diff       lwr       upr     p adj
## UNCLIMBED-CLIMBED -2.416361 -3.720204 -1.112519 0.0003097
## 
## $T_LOCATION
##            diff       lwr       upr p adj
## TR-HB -4.706673 -6.332078 -3.081267     0
## 
## $`CL_UNCL:T_LOCATION`
##                                diff        lwr        upr     p adj
## UNCLIMBED:HB-CLIMBED:HB   -3.387500  -7.240241  0.4652410 0.1071239
## CLIMBED:TR-CLIMBED:HB     -5.085227  -7.998693 -2.1717615 0.0000539
## UNCLIMBED:TR-CLIMBED:HB   -7.760417 -10.855013 -4.6658206 0.0000000
## CLIMBED:TR-UNCLIMBED:HB   -1.697727  -4.692240  1.2967859 0.4605598
## UNCLIMBED:TR-UNCLIMBED:HB -4.372917  -7.543934 -1.2018994 0.0023846
## UNCLIMBED:TR-CLIMBED:TR   -2.675189  -4.598733 -0.7516456 0.0021383

Cover of each functional group by site and climbing

caov <-aov(crust.cov~CL_UNCL*T_LOCATION, data=L_merge)
summary(caov)
##                     Df Sum Sq Mean Sq F value   Pr(>F)    
## CL_UNCL              1    458   458.2  13.291  0.00031 ***
## T_LOCATION           1   1131  1131.0  32.810 2.29e-08 ***
## CL_UNCL:T_LOCATION   1      6     6.3   0.182  0.66957    
## Residuals          330  11375    34.5                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(caov)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = crust.cov ~ CL_UNCL * T_LOCATION, data = L_merge)
## 
## $CL_UNCL
##                        diff       lwr       upr     p adj
## UNCLIMBED-CLIMBED -2.416361 -3.720204 -1.112519 0.0003097
## 
## $T_LOCATION
##            diff       lwr       upr p adj
## TR-HB -4.706673 -6.332078 -3.081267     0
## 
## $`CL_UNCL:T_LOCATION`
##                                diff        lwr        upr     p adj
## UNCLIMBED:HB-CLIMBED:HB   -3.387500  -7.240241  0.4652410 0.1071239
## CLIMBED:TR-CLIMBED:HB     -5.085227  -7.998693 -2.1717615 0.0000539
## UNCLIMBED:TR-CLIMBED:HB   -7.760417 -10.855013 -4.6658206 0.0000000
## CLIMBED:TR-UNCLIMBED:HB   -1.697727  -4.692240  1.2967859 0.4605598
## UNCLIMBED:TR-UNCLIMBED:HB -4.372917  -7.543934 -1.2018994 0.0023846
## UNCLIMBED:TR-CLIMBED:TR   -2.675189  -4.598733 -0.7516456 0.0021383
caov <-aov(powder.cov~CL_UNCL*T_LOCATION, data=L_merge)
summary(caov)
##                     Df Sum Sq Mean Sq F value  Pr(>F)   
## CL_UNCL              1    206  205.76  10.958 0.00104 **
## T_LOCATION           1     37   36.90   1.965 0.16190   
## CL_UNCL:T_LOCATION   1      0    0.33   0.018 0.89420   
## Residuals          330   6197   18.78                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(caov)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = powder.cov ~ CL_UNCL * T_LOCATION, data = L_merge)
## 
## $CL_UNCL
##                       diff       lwr      upr     p adj
## UNCLIMBED-CLIMBED 1.619353 0.6570113 2.581694 0.0010354
## 
## $T_LOCATION
##            diff        lwr      upr     p adj
## TR-HB 0.8501857 -0.3494957 2.049867 0.1642275
## 
## $`CL_UNCL:T_LOCATION`
##                                 diff        lwr      upr     p adj
## UNCLIMBED:HB-CLIMBED:HB    1.8229167 -1.0207197 4.666553 0.3492269
## CLIMBED:TR-CLIMBED:HB      0.9346591 -1.2157158 3.085034 0.6760057
## UNCLIMBED:TR-CLIMBED:HB    2.5937500  0.3096863 4.877814 0.0187917
## CLIMBED:TR-UNCLIMBED:HB   -0.8882576 -3.0984520 1.321937 0.7273824
## UNCLIMBED:TR-UNCLIMBED:HB  0.7708333 -1.5696355 3.111302 0.8301914
## UNCLIMBED:TR-CLIMBED:TR    1.6590909  0.2393590 3.078823 0.0145291
caov <-aov(fruit.cov~CL_UNCL*T_LOCATION, data=L_merge)
summary(caov)
##                     Df Sum Sq Mean Sq F value  Pr(>F)    
## CL_UNCL              1  213.9  213.87  41.823 3.6e-10 ***
## T_LOCATION           1    4.0    4.04   0.790  0.3748    
## CL_UNCL:T_LOCATION   1   24.8   24.84   4.858  0.0282 *  
## Residuals          330 1687.6    5.11                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(caov)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = fruit.cov ~ CL_UNCL * T_LOCATION, data = L_merge)
## 
## $CL_UNCL
##                       diff      lwr     upr p adj
## UNCLIMBED-CLIMBED 1.650946 1.148752 2.15314     0
## 
## $T_LOCATION
##            diff        lwr       upr     p adj
## TR-HB 0.2812672 -0.3447815 0.9073159 0.3774468
## 
## $`CL_UNCL:T_LOCATION`
##                                 diff        lwr       upr     p adj
## UNCLIMBED:HB-CLIMBED:HB    0.5416667 -0.9422731 2.0256065 0.7819169
## CLIMBED:TR-CLIMBED:HB     -0.3636364 -1.4858005 0.7585278 0.8369245
## UNCLIMBED:TR-CLIMBED:HB    1.5937500  0.4018209 2.7856791 0.0034953
## CLIMBED:TR-UNCLIMBED:HB   -0.9053030 -2.0586838 0.2480777 0.1802284
## UNCLIMBED:TR-UNCLIMBED:HB  1.0520833 -0.1692806 2.2734472 0.1188096
## UNCLIMBED:TR-CLIMBED:TR    1.9573864  1.2165052 2.6982675 0.0000000
caov <-aov(lobe.cov~CL_UNCL*T_LOCATION, data=L_merge)
summary(caov)
##                     Df Sum Sq Mean Sq F value   Pr(>F)    
## CL_UNCL              1    511   510.9  22.799 2.71e-06 ***
## T_LOCATION           1   1607  1607.0  71.708 8.32e-16 ***
## CL_UNCL:T_LOCATION   1     74    73.8   3.292   0.0705 .  
## Residuals          330   7395    22.4                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(caov)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = lobe.cov ~ CL_UNCL * T_LOCATION, data = L_merge)
## 
## $CL_UNCL
##                       diff       lwr      upr   p adj
## UNCLIMBED-CLIMBED -2.55174 -3.603039 -1.50044 2.7e-06
## 
## $T_LOCATION
##           diff     lwr      upr p adj
## TR-HB 5.610398 4.29982 6.920977     0
## 
## $`CL_UNCL:T_LOCATION`
##                                 diff       lwr       upr     p adj
## UNCLIMBED:HB-CLIMBED:HB   -0.1208333 -3.227332  2.985666 0.9996366
## CLIMBED:TR-CLIMBED:HB      6.7897727  4.440619  9.138926 0.0000000
## UNCLIMBED:TR-CLIMBED:HB    4.2291667  1.733967  6.724367 0.0000951
## CLIMBED:TR-UNCLIMBED:HB    6.9106061  4.496104  9.325109 0.0000000
## UNCLIMBED:TR-UNCLIMBED:HB  4.3500000  1.793181  6.906819 0.0000886
## UNCLIMBED:TR-CLIMBED:TR   -2.5606061 -4.111576 -1.009636 0.0001542
caov <-aov(umb.cov~CL_UNCL*T_LOCATION, data=L_merge)
summary(caov)
##                     Df Sum Sq Mean Sq F value   Pr(>F)    
## CL_UNCL              1    719   718.7  45.735 6.17e-11 ***
## T_LOCATION           1    230   229.6  14.610 0.000158 ***
## CL_UNCL:T_LOCATION   1     44    44.1   2.804 0.094998 .  
## Residuals          330   5186    15.7                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(caov)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = umb.cov ~ CL_UNCL * T_LOCATION, data = L_merge)
## 
## $CL_UNCL
##                      diff      lwr      upr p adj
## UNCLIMBED-CLIMBED 3.02648 2.146125 3.906836     0
## 
## $T_LOCATION
##          diff      lwr      upr     p adj
## TR-HB 2.12064 1.023165 3.218115 0.0001715
## 
## $`CL_UNCL:T_LOCATION`
##                                 diff        lwr      upr     p adj
## UNCLIMBED:HB-CLIMBED:HB    1.6979167 -0.9034578 4.299291 0.3330269
## CLIMBED:TR-CLIMBED:HB      1.2812500 -0.6859250 3.248425 0.3349322
## UNCLIMBED:TR-CLIMBED:HB    4.8645833  2.7751091 6.954058 0.0000000
## CLIMBED:TR-UNCLIMBED:HB   -0.4166667 -2.4385649 1.605232 0.9512077
## UNCLIMBED:TR-UNCLIMBED:HB  3.1666667  1.0255927 5.307741 0.0009169
## UNCLIMBED:TR-CLIMBED:TR    3.5833333  2.2845547 4.882112 0.0000000