Vegetation Analysis 1 Exercise 1 Answers ## 1.1 Calculate the total basal area by species. Show a bar plot of the sorted values. spbatot <- apply(spba, 2, sum) barplot(sort(spbatot), cex.names=0.5) ## 1.2 Calculate the average basal area per plot by species. Hint: use the table created from 1.1 and the sppres table. Show a bar plot of the sorted values with labels. sppres ## Display sppres spbaavg <- round(spbatot / sppres, 2) ## Average basal area for each species barplot(sort(spbaavg), cex.names=0.5, main="Avg basal area by species", xlab="Species", ylab="Avg basal area per plot") ## 1.3 Compare the barplot of avg basal area per plot with the barplot of avg number of trees per plot. Do not sort tables. Show on the same page and label plots. Hint: use par(mfrow). par(mfrow=c(2,1)) barplot(spbaavg, cex.names=0.5, main="Avg basal area per plot by species", xlab="Species", ylab="Avg basal area per plot") barplot(spavg, cex.names=0.5, main="Avg number of trees per plot by species", xlab="Species", ylab="Avg number of trees per plot") ## 1.4 Which species has the highest basal area per plot? Utah juniper ## 1.5 Which species has the highest number of trees per plot? mahogany 2 Exercise 1 Answers ## 1.6 Append the spba table to the plt table, naming the new object plt3. Change any NA values to 0 values. Make sure all records of plt are included. plt3 <- merge(plt, spba, by.x="CN", by.y="row.names", all.x=TRUE) head(plt3) dim(plt3) spnames <- colnames(spba) plt3[,spnames][is.na(plt3[,spnames])] <- 0 # Change NA values to 0 head(plt3) ## 1.7 Append the totba vector to the plt3 data frame, keeping plt3 as the name. Change any NA values in new column to 0 values. Make sure all records of plt3 are included. totba.df <- data.frame(totba) plt3 <- merge(plt3, totba.df, by.x="CN", by.y="row.names", all.x=TRUE) head(plt3) dim(plt3) plt3[,"totba"][is.na(plt3[,"totba"])] <- 0 # Change NA values to 0 head(plt3) ## 1.8 Merge the species-level tables created in 1.1 and 1.2 (spbatot, spbaavg) to the sptab table. sptab is.vector(spbatot) is.vector(spbaavg) spbatot.df <- data.frame(spbatot) spbaavg.df <- data.frame(spbaavg) sptab <- merge(sptab, spbatot.df, by.x="Species", by.y="row.names") sptab <- merge(sptab, spbaavg.df, by.x="Species", by.y="row.names") sptab 3