Muskox grazing observational study

Author: Tammy L. Elliott

Date: February 28, 2016

Institution: University of Cape Town

R version 3.2.1

Aboveground material - table with means and standard deviations

AG_mean_tab<-AG_mean
colnames(AG_mean_tab)<-c("Total Green", "Dead", "Green Graminoids", "Total Shrubs")
AG_mean_tab
##    Total Green     Dead Green Graminoids Total Shrubs
## AF    47.14635 257.5676          40.5670      22.4955
## SP    78.51570  46.1526          76.0595       2.7545
AG_sd_tab<-AG_sd
rownames(AG_sd_tab)<-c("AF", "SP")
colnames(AG_sd_tab)<-c("Total Green", "Dead", "Green Graminoids", "Total Shrubs")
AG_sd_tab
##    Total Green      Dead Green Graminoids Total Shrubs
## AF    17.50383 150.69374         16.41595    28.575414
## SP    18.60152  22.54662         18.90940     6.030617

ANOVA results for aboveground biomass

Aboveground green

#Aboveground Green ANOVA
Green_aov<-aov(Green~Location+Error(Site), data=obs)
summary(Green_aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value Pr(>F)
## Location   1   9840    9840   7.327  0.114
## Residuals  2   2686    1343               
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 36   9709   269.7

Aboveground Dead ANOVA - rank transformed

#change dead to rank
Dead_rank<-rank(obs$Dead)
Dead_aov<-aov(Dead_rank~Location+ Error(Site), data=obs)
summary(Dead_aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value Pr(>F)  
## Location   1   3802    3802   12.26 0.0728 .
## Residuals  2    621     310                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 36    907   25.19

Aboveground Green Graminoids ANOVA

GGraminoid_aov<-aov(Graminoid_green~Location+Error(Site), data=obs)
summary(GGraminoid_aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value Pr(>F)  
## Location   1  12597   12597   10.05 0.0868 .
## Residuals  2   2507    1254                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 36   9406   261.3

Total shrubs ANOVA - log transformed

#Total shrubs (add 0.01 so that can log)
shrubs.total<-0.01 + obs$shrubs_total
Shrubs_aov<-aov(log(shrubs.total)~Location + Error(Site), data=obs)
summary(Shrubs_aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value Pr(>F)
## Location   1 187.33  187.33   7.104  0.117
## Residuals  2  52.74   26.37               
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 36  228.6   6.351

Belowground ANOVAS

Live material ANOVA

BG.aov<-aov(Livegr~Location + Error(Site), data=obs)
summary(BG.aov)
## 
## Error: Site
##           Df  Sum Sq Mean Sq F value Pr(>F)  
## Location   1 1154782 1154782    24.4 0.0386 *
## Residuals  2   94651   47326                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Error: Within
##           Df  Sum Sq Mean Sq F value Pr(>F)
## Residuals 36 1780149   49449

Belowground standing crop - rank transformed

allgr.rank<-rank(obs$allgr)
allgr.aov<-aov(allgr.rank~Location + Error(Site), data=obs)
summary(allgr.aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value Pr(>F)  
## Location   1 2755.6  2755.6   27.09  0.035 *
## Residuals  2  203.4   101.7                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 36   2371   65.86

Belowground mean and standard deviation tables

# show in table format
BG_mean_tab<-BG_mean
colnames(BG_mean_tab)<-c("Live", "Standing Crop")
BG_mean_tab
##        Live Standing Crop
## AF 117.6490      491.4469
## SP 457.4698     1260.3665
# standard deviations
BG_sd_tab<-BG_sd
rownames(BG_sd_tab)<-c("AF", "SP")
colnames(BG_sd_tab)<-c("Live", "Standing Crop")
BG_sd_tab
##        Live Standing Crop
## AF 171.3111      394.5905
## SP 263.2987      468.5512

ANOVAS for nitrate and ammonium

Nitrate ANOVA

nitrate.aov<-aov(N03~Location+ Error(PlotID), data=obsN)
summary(nitrate.aov)
## 
## Error: PlotID
##          Df    Sum Sq   Mean Sq
## Location  1 0.0005357 0.0005357
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Location   1   0.66   0.655    0.08  0.789
## Residuals  5  41.04   8.208

ANOVA for nitrate with two sites, log N03 to meet normality

nitrate.2.aov<-aov(log(N03)~Location +Error(obsN_site), data=obsN.2.site)
summary(nitrate.2.aov)
## 
## Error: obsN_site
##           Df Sum Sq Mean Sq F value Pr(>F)
## Location   1 0.1927  0.1927   0.245  0.669
## Residuals  2 1.5699  0.7850               
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals  4  11.26   2.816

AMMONIUM ANOVA

ammonium.aov<-aov(Nh4~Location + Error(PlotID), data=obsN)
summary(ammonium.aov)
## 
## Error: PlotID
##          Df Sum Sq Mean Sq
## Location  1    476     476
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Location   1  39.71   39.71   1.557  0.267
## Residuals  5 127.55   25.51

ANOVA for 2 site ammonium

ammonium.2.aov<-aov(Nh4~Location + Error(obsN_site), data=obsN.2.site)
summary(ammonium.2.aov)
## 
## Error: obsN_site
##           Df Sum Sq Mean Sq F value Pr(>F)  
## Location   1  489.2   489.2   19.89 0.0468 *
## Residuals  2   49.2    24.6                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals  4  104.8   26.21

Table with mean and standard deviation Nitrogen values

# show in table format
N_mean.tab<-N_mean
colnames(N_mean.tab)<-c("Nitrate", "Ammonium")
N_mean.tab
##    Nitrate Ammonium
## AF   2.410   14.635
## SP   2.145   30.275
# standard deviations
N_sd.tab<-N_sd
rownames(N_sd.tab)<-c("AF", "SP")
colnames(N_sd.tab)<-c("Nitrate", "Ammonium")
N_sd.tab
##     Nitrate Ammonium
## AF 2.455307 4.828454
## SP 2.797124 5.294050

Table with mean and standard deviation Nitrogen values for two sites

# show in table format
N_mean.2_tab<-N_mean.2
colnames(N_mean.2_tab)<-c("Nitrate", "Ammonium")
N_mean.2_tab
##    Nitrate Ammonium
## AF   2.410   14.635
## SP   2.145   30.275
# standard deviations
N_sd.2_tab.2<-N_sd.2
rownames(N_sd.2_tab.2)<-c("AF", "SP")
colnames(N_sd.2_tab.2)<-c("Nitrate", "Ammonium")
N_sd.2_tab.2
##     Nitrate Ammonium
## AF 2.455307 4.828454
## SP 2.797124 5.294050

Aboveground barplot with error bars

#dev.new(width=8, height=7)
layout(matrix(c(1,2,3,4), 2, 2, byrow = TRUE), 
    widths=c(5,3), heights=c(2,2))

par(mar=c(5.5,4.5, 1, 2), mai=c(0.75,1.2,0.6,0.3), mgp=c(3,1.1,0.25))
AG_barplot<-barplot(AG_mean,  col=c("grey80", "grey30"), 
    ylab=expression("Aboveground Biomass" ~~  (g ~ m^{-2})),beside=TRUE,
    cex.lab=1.5, cex.axis=1.1,cex.names=1.25, lwd=2, ylim=c(0,500))
arrows(AG_barplot, AG_mean-AG_sd, AG_barplot, AG_mean+AG_sd, length=0.05, angle=90, code=3)

BG_barplot<-barplot(BG_mean,  col=c("grey80", "grey30"), 
    ylab=expression("Belowground Biomass" ~~ (g ~ m^{-2})),beside=TRUE,
    cex.lab=1.5, cex.axis=1.1,cex.names=1.25, lwd=2, ylim=c(0,2000))
arrows(BG_barplot, BG_mean-BG_sd, BG_barplot, BG_mean+BG_sd, length=0.05, angle=90, code=3)

par(mar=c(4,18, 3, 1 ))
N_barplot<-barplot(N_mean,  col=c("grey80", "grey30"), 
    ylab=expression("N Supply Rate" ~~ (mu*g ~ 10*cm^{-2} ~ 24*h^{-1})),beside=TRUE,
    cex.lab=1.5, cex.axis=1.1,cex.names=1.25, lwd=2, ylim=c(0,40))
arrows(N_barplot, N_mean-N_sd, N_barplot, N_mean+N_sd, length=0.05, angle=90, code=3)

par(mar=c(0,0,4,3))
plot.new()
#par(xpd=TRUE)
legend("topright", col=c("grey80", "grey30"), pch=15, legend=c("AF - ungrazed", "SP - grazed"), cex=1.25, bty="n")

#textClick("a)", cex=1.75)
#textClick("b)", cex=1.75)
#textClick("c)", cex=1.75)
#textClick("*", cex=2)
#textClick("*", cex=2)
#textClick("**", cex=2)
#textClick("**", cex=2)

Aboveground barplot with error bars for only two sites of nitrogen

#dev.new(width=8, height=7)
layout(matrix(c(1,2,3,4), 2, 2, byrow = TRUE), 
    widths=c(5,3), heights=c(2,2))

par(mar=c(5.5,4.5, 1, 2), mai=c(0.75,1.2,0.6,0.3), mgp=c(3,1.1,0.25))
AG_barplot<-barplot(AG_mean,  col=c("grey80", "grey30"), 
    ylab=expression("Aboveground Biomass" ~~  (g ~ m^{-2})),beside=TRUE,
    cex.lab=1.5, cex.axis=1.1,cex.names=1.25, lwd=2, ylim=c(0,500))
arrows(AG_barplot, AG_mean-AG_sd, AG_barplot, AG_mean+AG_sd, length=0.05, angle=90, code=3)

BG_barplot<-barplot(BG_mean,  col=c("grey80", "grey30"), 
    ylab=expression("Belowground Biomass" ~~ (g ~ m^{-2})),beside=TRUE,
    cex.lab=1.5, cex.axis=1.1,cex.names=1.25, lwd=2, ylim=c(0,2000))
arrows(BG_barplot, BG_mean-BG_sd, BG_barplot, BG_mean+BG_sd, length=0.05, angle=90, code=3)

par(mar=c(4,18, 3, 1 ))
N2_barplot<-barplot(N_mean.2,  col=c("grey80", "grey30"), 
    ylab=expression("N Supply Rate" ~~ (mu*g ~ 10*cm^{-2} ~ 24*h^{-1})),beside=TRUE,
    cex.lab=1.5, cex.axis=1.1,cex.names=1.25, lwd=2, ylim=c(0,40))
arrows(N2_barplot, N_mean.2-N_sd.2, N2_barplot, N_mean.2+N_sd.2, length=0.05, angle=90, code=3)

par(mar=c(0,0,4,3))
plot.new()
#par(xpd=TRUE)
legend("topright", col=c("grey80", "grey30"), pch=15, legend=c("AF - ungrazed", "SP - grazed"), cex=1.25, bty="n")

#textClick("a)", cex=1.75)
#textClick("b)", cex=1.75)
#textClick("c)", cex=1.75)
#textClick("*", cex=2)
#textClick("*", cex=2)
#textClick("**", cex=2)
#textClick("**", cex=2)
#textClick("**", cex=2)

Aboveground, belowground and nitrogen boxplots

Box plot for aboveground, belowground and soil nitrogen

#dev.new(width=8, height=7)
layout(matrix(c(1,2,3,4), 2, 2, byrow = TRUE), 
    widths=c(5,3), heights=c(2,2))

par(mar=c(2.5,3.5, 1, 0.5), mai=c(0.75,1.2,0.6,0.1), mgp=c(3,1.1,0.25))
boxplot(Value.ag~Location.ag*Abovegroundtype.ag,data=obs.ag,frame.plot=FALSE,axes=FALSE, notch=FALSE, at =c(1,2,4,5, 7,8,10,11),
    col=c("grey80", "grey30"),ylab=expression("Aboveground Biomass" ~~  (g ~ m^{-2})),beside=TRUE, 
    cex.lab=1.5, cex.axis=1.1,cex.names=1.75, lwd=1, ylim=c(0,600))
 axis(side=2, lwd=2)
  mtext(c("Dead","Total \nGreen","Green \nGraminoids",
    "Shrubs"), side = 1, at =c(1.5,4.5, 7.5, 10.5), cex=1, line=2)

  boxplot(Value.bg~Location.bg*Belowgroundtype.bg,data=obs.bg,frame.plot=FALSE,axes=FALSE, notch=FALSE, at =c(1,2,4,5),
    col=c("grey80", "grey30"),ylab=expression("Belowground Biomass" ~~  (g ~ m^{-2})),beside=TRUE, 
    cex.lab=1.5, cex.axis=1.1,cex.names=1.75, lwd=1, ylim=c(0,2000))
 axis(side=2, lwd=2)
  mtext(c("Live", "Standing \nCrop"), side = 1, at =c(1.5,4.5), cex=1, line=2)

par(mar=c(4,19, 3, 1 ))
  boxplot(Value.nit~Location.nit*Nitrogen.nit,data=obs.nit,frame.plot=FALSE,axes=FALSE, notch=FALSE, at =c(1,2,4,5),
    col=c("grey80", "grey30"),ylab=expression("N Supply Rate" ~~ (mu*g ~ 10*cm^{-2} ~ 24*h^{-1})),beside=TRUE, 
    cex.lab=1.5, cex.axis=1.1,cex.names=1.75, lwd=1, ylim=c(0,40))
 axis(side=2, lwd=2)
  mtext(c("Ammonium", "Nitrate"), side = 1, at =c(1.5,4.5), cex=1, line=2)

par(mar=c(0,0,4,3))
plot.new()
#par(xpd=TRUE)
legend("topright", col=c("grey80", "grey30"), pch=15, legend=c("AF - ungrazed", "SP - grazed"), cex=1.25, bty="n")

#textClick("a)", cex=1.75)
#textClick("b)", cex=1.75)
#textClick("c)", cex=1.75)
#textClick("*", cex=2)
#textClick("*", cex=2)
#textClick("**", cex=2)
#textClick("**", cex=2)
#textClick("**", cex=2)

ANOVAS for vegetative carbon to nitrogen

Carex nitrogen ANOVA

N.c.aov<-aov(TotalN~Location + Error(Site), data=obsCN_c)
summary(N.c.aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value Pr(>F)  
## Location   1  6.003   6.003   15.57 0.0169 *
## Residuals  4  1.542   0.386                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 24   1.74 0.07249

Carex nitrogen ANOVA - 2 site

N.c.2.aov<-aov(TotalN~Location + Error(Site), data=carex.2.sites)
summary(N.c.2.aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value Pr(>F)  
## Location   1  3.654   3.654   47.51 0.0204 *
## Residuals  2  0.154   0.077                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 16 0.6632 0.04145

Eriophorum Nitrogen ANOVA

N.e.aov<-aov(TotalN~Location + Error(Site), data=obsCN_e)
summary(N.e.aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value Pr(>F)  
## Location   1  2.174  2.1744   5.996 0.0499 *
## Residuals  6  2.176  0.3626                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 32  1.581  0.0494

Eriophorum Nitrogen 2 site ANOVA

N.e.2.aov<-aov(TotalN~Location + Error(Site), data=eriophorum.2.sites)
summary(N.e.2.aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value  Pr(>F)   
## Location   1 1.1050  1.1050   112.5 0.00877 **
## Residuals  2 0.0197  0.0098                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 16 0.5047 0.03154

Salix Nitrogen ANOVA (only 2 sites sampled)

N.s.aov<-aov(TotalN~Location + Error(Site), data=obsCN_s)
summary(N.s.aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value Pr(>F)
## Location   1  0.013  0.0130   0.016  0.912
## Residuals  2  1.651  0.8255               
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 16  2.575  0.1609

Vegetative Carbon ANOVAS

Carex Carbon ANOVA

C.c.aov<-aov(TotalC~Location + Error(Site), data=obsCN_c)
summary(C.c.aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value Pr(>F)
## Location   1  3.997   3.997   3.346  0.141
## Residuals  4  4.778   1.195               
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 24  4.042  0.1684

Carex Carbon ANOVA - 2 sites only

C.c.2.aov<-aov(TotalC~Location + Error(Site), data=carex.2.sites)
summary(C.c.2.aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value Pr(>F)
## Location   1   4.91   4.910   2.633  0.246
## Residuals  2   3.73   1.865               
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 16  1.682  0.1051

Eriophorum Carbon ANOVA

C.e.aov<-aov(TotalC~Location + Error(Site), data=obsCN_e)
summary(C.e.aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value Pr(>F)
## Location   1  0.246  0.2465   0.169  0.695
## Residuals  6  8.760  1.4600               
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 32  9.694  0.3029

Eriophorum Carbon 2 site ANOVA

C.e.2.aov<-aov(TotalC~Location + Error(Site), data=eriophorum.2.sites)
summary(C.e.2.aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value Pr(>F)
## Location   1  0.110   0.110   0.032  0.875
## Residuals  2  6.897   3.448               
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 16  3.405  0.2128

Salix Carbon ANOVA - 2 sites only

C.s.aov<-aov(TotalC~Location + Error(Site), data=obsCN_s)
summary(C.s.aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value Pr(>F)
## Location   1  2.679   2.679   0.342  0.618
## Residuals  2 15.645   7.822               
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 16  11.83  0.7391

Carbon to nitrogen ratios

Carex C:N ANOVA

CN.c.aov<-aov(C.N~Location + Error(Site), data=obsCN_c)
summary(CN.c.aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value Pr(>F)  
## Location   1 314.36  314.36    14.8 0.0183 *
## Residuals  4  84.96   21.24                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 24  100.4   4.185

Carex C:N ANOVA, log C:N to meet variance and normality

CN.c.2.aov<-aov(log(C.N)~Location + Error(Site), data=carex.2.sites)
summary(CN.c.2.aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value Pr(>F)  
## Location   1 0.5999  0.5999   48.31 0.0201 *
## Residuals  2 0.0248  0.0124                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Error: Within
##           Df Sum Sq  Mean Sq F value Pr(>F)
## Residuals 16 0.1478 0.009238

Eriophorum C:N ANOVA

CN.e.aov<-aov(C.N~Location + Error(Site), data=obsCN_e)
summary(CN.e.aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value Pr(>F)  
## Location   1  341.6   341.6   7.696 0.0322 *
## Residuals  6  266.3    44.4                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 32  208.4   6.513
bartlett.test(C.N~Location, data=eriophorum.2.sites)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  C.N by Location
## Bartlett's K-squared = 2.411, df = 1, p-value = 0.1205
shapiro.test(eriophorum.2.sites$C.N)
## 
##  Shapiro-Wilk normality test
## 
## data:  eriophorum.2.sites$C.N
## W = 0.93924, p-value = 0.232

Eriophorum 2 site ANOVA C:N

CN.e.2.aov<-aov(C.N~Location + Error(Site), data=eriophorum.2.sites)
summary(CN.e.2.aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value  Pr(>F)   
## Location   1 218.06  218.06   216.9 0.00458 **
## Residuals  2   2.01    1.01                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 16  117.1   7.321

Salix C:N ANOVA

CN.s.aov<-aov(C.N~Location + Error(Site), data=obsCN_s)
summary(CN.s.aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value Pr(>F)
## Location   1  19.75   19.75   0.291  0.643
## Residuals  2 135.58   67.79               
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 16  210.8   13.18

Vegetative carbon:nitrogen tables

Vegetative nitrogen mean and standard deviation

# show in table format
N.mean_tab<-N.mean
colnames(N.mean_tab)<-c("Carex stans", "Eriophorum triste", "Salix arctica")
N.mean_tab
##    Carex stans Eriophorum triste Salix arctica
## AF    2.075933          2.075933         2.294
## SP    2.970600          2.970600         2.345
# standard deviations
N.sd.tab<-N.sd
rownames(N.sd.tab)<-c("AF", "SP")
colnames(N.sd.tab)<-c("Carex stans", "Eriophorum triste", "Salix arctica")
N.sd.tab
##    Carex stans Eriophorum triste Salix arctica
## AF    0.291151          0.291151     0.6457316
## SP    0.386873          0.386873     0.2293416

Vegetative carbon mean and standard deviation

# show in table format
C.mean_tab<-C.mean
colnames(C.mean_tab)<-c("Carex stans", "Eriophorum triste", "Salix arctica")
C.mean_tab
##    Carex stans Eriophorum triste Salix arctica
## AF    45.09733          45.09733        46.406
## SP    45.82733          45.82733        45.674
# standard deviations
C.sd.tab<-C.sd
rownames(C.sd.tab)<-c("AF", "SP")
colnames(C.sd.tab)<-c("Carex stans", "Eriophorum triste", "Salix arctica")
C.sd.tab
##    Carex stans Eriophorum triste Salix arctica
## AF   0.5484324         0.9513032      1.281806
## SP   0.5737778         0.4895531      1.187127

Vegetative carbon:nitrogen mean and standard deviation

#Carbon:Nitrogen
# show in table format
CN.mean_tab<-CN.mean
colnames(CN.mean_tab)<-c("Carex stans", "Eriophorum triste", "Salix arctica")
CN.mean_tab
##    Carex stans Eriophorum triste Salix arctica
## AF     22.1268            26.413      21.66377
## SP     15.6526            20.568      19.67632
# standard deviations
CN.sd.tab<-CN.sd
rownames(CN.sd.tab)<-c("AF", "SP")
colnames(CN.sd.tab)<-c("Carex stans", "Eriophorum triste", "Salix arctica")
CN.sd.tab
##    Carex stans Eriophorum triste Salix arctica
## AF    3.123388          4.451594      5.757019
## SP    1.867512          2.273823      2.311822

Vegetative carbon and nitrogen tables using only data from two sites

Nitrogen mean and standard deviation - 2 sites

#2 site, show in table format
# show in table format
N.mean.2_tab<-N.mean.2
colnames(N.mean.2_tab)<-c("Carex stans", "Eriophorum triste", "Salix arctica")
N.mean.2_tab
##    Carex stans Eriophorum triste Salix arctica
## AF      1.9450            1.9450         2.294
## SP      2.7999            2.7999         2.345
# standard deviations
N.sd.2_tab<-N.sd.2
rownames(N.sd.2_tab)<-c("AF", "SP")
colnames(N.sd.2_tab)<-c("Carex stans", "Eriophorum triste", "Salix arctica")
N.sd.2_tab
##    Carex stans Eriophorum triste Salix arctica
## AF   0.2281237         0.2281237     0.6457316
## SP   0.1968296         0.1968296     0.2293416

Carbon mean and standard deviation - 2 sites

# show in table format
C.mean.2_tab<-C.mean.2
colnames(C.mean.2_tab)<-c("Carex stans", "Eriophorum triste", "Salix arctica")
C.mean.2_tab
##    Carex stans Eriophorum triste Salix arctica
## AF      44.988            44.988        46.406
## SP      45.979            45.979        45.674
# standard deviations
C.sd.2_tab<-C.sd.2
rownames(C.sd.2_tab)<-c("AF", "SP")
colnames(C.sd.2_tab)<-c("Carex stans", "Eriophorum triste", "Salix arctica")
C.sd.2_tab
##    Carex stans Eriophorum triste Salix arctica
## AF   0.5119201         0.9513032      1.281806
## SP   0.5824555         0.4895531      1.187127

Carbon to nitrogen ratios for two sites shown in tables

#Carbon:Nitrogen
# show in table format
CN.mean.2_tab<-CN.mean.2
colnames(CN.mean.2_tab)<-c("Carex stans", "Eriophorum triste", "Salix arctica")
CN.mean.2_tab
##    Carex stans Eriophorum triste Salix arctica
## AF     23.4279            28.761      21.66377
## SP     16.4851            22.157      19.67632
# standard deviations
CN.sd.2_tab<-CN.sd.2
rownames(CN.sd.2_tab)<-c("AF", "SP")
colnames(CN.sd.2_tab)<-c("Carex stans", "Eriophorum triste", "Salix arctica")
CN.sd.2_tab
##    Carex stans Eriophorum triste Salix arctica
## AF    2.832731          3.147071      5.757019
## SP    1.007190          1.825937      2.311822

C:N barplot with error bars

#dev.new(width=8, height=7)
layout(matrix(c(1,2,3,4), 2, 2, byrow = TRUE), 
    widths=c(4,4), heights=c(2,2))

par(mar=c(5.5,3, 1, 1), mai=c(0.75,1,0.3,0.3), mgp=c(3,1.3,0.35))
Nveg_barplot<-barplot(N.mean,  col=c("grey80", "grey30"), 
    ylab="Nitrogen (%)",beside=TRUE,
    cex.lab=1.5, cex.axis=1.1,cex.names=1.25, lwd=2, ylim=c(0,4),
    names.arg=italic_latin)
arrows(Nveg_barplot, N.mean-N.sd, Nveg_barplot, N.mean+N.sd, length=0.05, angle=90, code=3)

C_barplot<-barplot(C.mean,  col=c("grey80", "grey30"), 
    ylab="Carbon (%)",beside=TRUE,
    cex.lab=1.5, cex.axis=1.1,cex.names=1.25, lwd=2, ylim=c(0,55), names.arg=italic_latin)
arrows(C_barplot, C.mean-C.sd, C_barplot, C.mean+C.sd, length=0.05, angle=90, code=3)

par(mar=c(4,5.8, 3, 2 ))
CN_barplot<-barplot(CN.mean,  col=c("grey80", "grey30"), 
    ylab="C:N Ratio",beside=TRUE,
    cex.lab=1.5, cex.axis=1.1,cex.names=1.25, lwd=2, ylim=c(0,35), names.arg=italic_latin)
arrows(CN_barplot, CN.mean-CN.sd, CN_barplot, CN.mean+CN.sd, length=0.05, angle=90, code=3)

par(mar=c(0,0,4,6))
plot.new()
#par(xpd=TRUE)
legend("topright", col=c("grey80", "grey30"), pch=15, legend=c("AF - ungrazed", "SP - grazed"), cex=1.25, bty="n")

#textClick("a)", cex=1.75)
#textClick("b)", cex=1.75)
#textClick("c)", cex=1.75)
#textClick("**", cex=2)
#textClick("**", cex=2)
#textClick("**", cex=2)

Carbon:Nitrogen barplot for two sites

# For two sites only
CN.mean.2<-cbind(CN_c_mean.2, CN_e_mean.2, CN_s_mean.2)
#Aboveground barplot with error bars
#dev.new(width=8, height=7)
layout(matrix(c(1,2,3,4), 2, 2, byrow = TRUE), 
    widths=c(4,4), heights=c(2,2))

par(mar=c(5.5,3, 1, 1), mai=c(0.75,1,0.3,0.3), mgp=c(3,1.3,0.35))
Nveg_barplot.2<-barplot(N.mean.2,  col=c("grey80", "grey30"), 
    ylab="Nitrogen (%)",beside=TRUE,
    cex.lab=1.5, cex.axis=1.1,cex.names=1.25, lwd=2, ylim=c(0,4),
    names.arg=italic_latin)
arrows(Nveg_barplot.2, N.mean.2-N.sd.2, Nveg_barplot.2, N.mean.2+N.sd.2, length=0.05, angle=90, code=3)

C_barplot.2<-barplot(C.mean.2,  col=c("grey80", "grey30"), 
    ylab="Carbon (%)",beside=TRUE,
    cex.lab=1.5, cex.axis=1.1,cex.names=1.25, lwd=2, ylim=c(0,55), names.arg=italic_latin)
arrows(C_barplot.2, C.mean.2-C.sd.2, C_barplot.2, C.mean.2+C.sd.2, length=0.05, angle=90, code=3)

par(mar=c(4,5.8, 3, 2 ))
CN_barplot.2<-barplot(CN.mean.2,  col=c("grey80", "grey30"), 
    ylab="C:N Ratio",beside=TRUE,
    cex.lab=1.5, cex.axis=1.1,cex.names=1.25, lwd=2, ylim=c(0,35), names.arg=italic_latin)
arrows(CN_barplot.2, CN.mean.2-CN.sd.2, CN_barplot.2, CN.mean.2+CN.sd.2, length=0.05, angle=90, code=3)

par(mar=c(0,0,4,6))
plot.new()
#par(xpd=TRUE)
legend("topright", col=c("grey80", "grey30"), pch=15, legend=c("AF - ungrazed", "SP - grazed"), cex=1.25, bty="n")

#textClick("a)", cex=1.75)
#textClick("b)", cex=1.75)
#textClick("c)", cex=1.75)
#textClick("**", cex=2)
#textClick("**", cex=2)
#textClick("**", cex=2)
#textClick("**", cex=2)

Vegetative Nitrogen, Carbon and C:N ratio boxplot - 2 sites

Boxplot showing vegetative carbon, nitrogen and C:N (2 sites)

#dev.new(width=8, height=7)
layout(matrix(c(1,2,3,4), 2, 2, byrow = TRUE), 
    widths=c(4,4), heights=c(2,2))

par(mar=c(5.5,3, 1, 1), mai=c(0.75,1,0.3,0.3), mgp=c(3,1.3,0.35))
boxplot(Value.vegnit~Location.vegnit*Nitrogen.vegnit,data=vegnitrogen,frame.plot=FALSE,axes=FALSE, notch=FALSE, at =c(1,2,4,5, 7,8),
    col=c("grey80", "grey30"),ylab="Nitrogen (%)",beside=TRUE, 
    cex.lab=1.5, cex.axis=1.1,cex.names=1.75, lwd=1, ylim=c(1,4))
 axis(side=2, lwd=2)
  mtext(c(expression(italic("Carex \n stans")), expression(italic("Eriophorum \n      triste")), expression
    (italic(" Salix \narctica"))), side = 1, at =c(1.5,4.5, 7.5), cex=1, line=2)

  boxplot(Value.vegcar~Location.vegcar*Carbon.vegcar,data=vegcarrogen,frame.plot=FALSE,axes=FALSE, notch=FALSE,at =c(1,2,4,5, 7,8),
    col=c("grey80", "grey30"),ylab="Carbon (%)" ,beside=TRUE, 
    cex.lab=1.5, cex.axis=1.1,cex.names=1.75, lwd=1, ylim=c(44,48))
 axis(side=2, lwd=2)
  mtext(c(expression(italic("Carex \n stans")), expression(italic("Eriophorum \n      triste")), expression
    (italic(" Salix \narctica"))), side = 1, at =c(1.5,4.5, 7.5), cex=1, line=2)

   par(mar=c(4,5.8, 3, 2 ))
  boxplot(Value.vegc.n~Location.vegc.n*C.N.vegc.n,data=vegc.n,frame.plot=FALSE,axes=FALSE, notch=FALSE, at =c(1,2,4,5, 7,8),
    col=c("grey80", "grey30"),ylab="C:N Ratio",beside=TRUE, 
    cex.lab=1.5, cex.axis=1.1,cex.names=1.75, lwd=1, ylim=c(10,35))
 axis(side=2, lwd=2)
   mtext(c(expression(italic("Carex \n stans")), expression(italic("Eriophorum \n      triste")), expression
    (italic(" Salix \narctica"))), side = 1, at =c(1.5,4.5, 7.5), cex=1, line=2)

par(mar=c(0,0,4,6))
plot.new()
#par(xpd=TRUE)
legend("topright", col=c("grey80", "grey30"), pch=15, legend=c("AF - ungrazed", "SP - grazed"), cex=1.25, bty="n")

#textClick("a)", cex=1.75)
#textClick("b)", cex=1.75)
#textClick("c)", cex=1.75)
#textClick("**", cex=2)
#textClick("**", cex=2)
#textClick("**", cex=2)
#textClick("**", cex=2)

Ecosystem Respiration

Ecosystem respiration mean and standard deviations

obsresp.mean.sd
##                           AF        SP
## Mean               1.2536032 1.8200310
## Standard deviation 0.4098402 0.7542147

ANOVA comparison of ecosystem respiration with rank transformations

resp.rank<-rank(obsresp$aveflux)
resp.aov<-aov(resp.rank~Location +Error(Site), data=obsresp)
summary(resp.aov)
## 
## Error: Site
##           Df Sum Sq Mean Sq F value Pr(>F)
## Location   1 1633.3  1633.3   4.507  0.168
## Residuals  2  724.8   362.4               
## 
## Error: Within
##           Df Sum Sq Mean Sq F value Pr(>F)
## Residuals 44   6854   155.8

Ecosystem Respiration plot

#dev.new(width=6, height=6)
par(mar=c(2,2,2,1), mai=c(1,1,0.75,0))
resp_barplot<-barplot(obsresp.mean,  col=c("grey80", "grey30"), 
    ylab=expression("Ecosystem Respiration" ~~ (mu*mol ~ m^{-2} ~ s^{-1})),beside=TRUE,
    cex.lab=1.5, cex.axis=1.1,cex.names=1.25, lwd=2, ylim=c(0,3), names.arg=c("AF - ungrazed", "SP - grazed") )
arrows(resp_barplot, obsresp.mean-obsresp.sd, resp_barplot, obsresp.mean+obsresp.sd, length=0.05, angle=90, code=3)