setwd("C:/Users/USER/OneDrive/Desktop/Data Science Resources/R studio/Ongoing projects/West Pokot")
getwd()
## [1] "C:/Users/USER/OneDrive/Desktop/Data Science Resources/R studio/Ongoing projects/West Pokot"
#A. DESCRIPTION AND SUMMARY OF WET SEASON DATA
# Import the wet season quadrat data set
library(readxl)
Quadrat_Wet <- read_excel("WP_Vegetation.xlsx", sheet = 3)
View (Quadrat_Wet)
colnames(Quadrat_Wet)
## [1] "Lifeform" "Species" "Chepararia" "Riwo" "Suam"
## [6] "Habit"
# Subsetting the grasses data for description, summarisation and analysis
Grasses_Wet <- Quadrat_Wet [Quadrat_Wet$Lifeform == "Grass",]
View(Grasses_Wet)
# 1. SPECIES DIVERSITY
# Calculating the diversity of species using the Shannon-Weiner index, a widely-used measure in ecology, implemented through the 'vegan' package in R, which facilitates comprehensive analysis of ecological communities.
library(vegan)
## Loading required package: permute
## Loading required package: lattice
## This is vegan 2.6-4
# Calculating the diversity index for grass species observed in Chepararia, Riwo, and Suam wards during the wet season.
# Exploring the diversity of grass species specifically within the Chepararia Ward
Grass_Diversity_Wet_Chep <- diversity(Grasses_Wet$Chepararia, index = "shannon")
print(Grass_Diversity_Wet_Chep)
## [1] 2.027927
# Investigating the diversity of grass species within Riwo ward
Grass_Diversity_Wet_Riwo <- diversity(Grasses_Wet$Riwo, index = "shannon")
print(Grass_Diversity_Wet_Riwo)
## [1] 2.328463
# Examining the diversity of grass species within the Suam Ward
Grass_Diversity_Wet_Suam <- diversity(Grasses_Wet$Suam, index = "shannon")
print(Grass_Diversity_Wet_Suam)
## [1] 1.800271
# Calculating the Diversity Index of Forbs Across Chepararia, Riwo, and Suam During the Wet Season.
# Subset the data for forbs from the Quadrat_Wet dataset, which contains observations from the wet season.
Forbs_Wet <- Quadrat_Wet [Quadrat_Wet$Lifeform == "Forb", ]
View(Forbs_Wet)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.1 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.2 ✔ tibble 3.2.1
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
Forbs_Wet <- Forbs_Wet %>% select (-Habit)
print(Forbs_Wet)
## # A tibble: 32 × 5
## Lifeform Species Chepararia Riwo Suam
## <chr> <chr> <dbl> <dbl> <dbl>
## 1 Forb Acanthospermum hispidum 1 0 25
## 2 Forb Achyranthes aspera 2 0 0
## 3 Forb Ageratum conyzoides 32 5 2
## 4 Forb Asystasia schimperi 1 0 0
## 5 Forb Blepharis integrifolia 0 48 0
## 6 Forb Bothriocline somalensis 2 8 0
## 7 Forb Commelina benghalensis 7 8 0
## 8 Forb Commicarpus stellatus 1 0 0
## 9 Forb Conyza floribunda 3 0 0
## 10 Forb Crabbea velutina 1 0 0
## # … with 22 more rows
# Calculating the Diversity Index of Forbs in Chepararia ward
Forb_Diversity_Wet_Chep <- diversity(Forbs_Wet$Chepararia, index = "shannon")
print(Forb_Diversity_Wet_Chep)
## [1] 1.910521
# Calculating the Diversity Index of Forbs in Riwo ward
Forb_Diversity_Wet_Riwo <- diversity(Forbs_Wet$Riwo, index = "shannon")
print(Forb_Diversity_Wet_Riwo)
## [1] 2.276369
# Calculating the Diversity Index of Forbs in Suam Ward
Forb_Diversity_Wet_Suam <- diversity(Forbs_Wet$Suam, index = "shannon")
print(Forb_Diversity_Wet_Suam)
## [1] 1.577628
# Diversity Index of Shrubs Across Chepararia, Riwo, and Suam During the Wet Season
# Subset the data for shrubs from the Quadrat_Wet dataset, which contains observations from the wet season.
Shrubs_Wet <- Quadrat_Wet %>%
filter(Lifeform == "Shrub") %>%
select(-Habit)
View(Shrubs_Wet)
# Quantifying Shrub Diversity Index in Chepararia Ward
Shrub_Diversity_Wet_Chep <- diversity(Shrubs_Wet$Chepararia, index = "shannon")
print(Shrub_Diversity_Wet_Chep)
## [1] 2.352299
# Assessing Shrub Diversity Index in Riwo Ward
Shrub_Diversity_Wet_Riwo <- diversity(Shrubs_Wet$Riwo, index = "shannon")
print(Shrub_Diversity_Wet_Riwo)
## [1] 2.118296
# Calculating the Shrub Diversity Index in Suam Ward
Shrub_Diversity_Wet_Suam <- diversity(Shrubs_Wet$Suam, index = "shannon")
print(Shrub_Diversity_Wet_Suam)
## [1] 2.434486
# Quantifying the Tree Diversity Indexes Across Chepararia, Riwo, and Suam wards During the Wet Season
# Selecting Tree Data from the Quadrat_Wet Dataset
Trees_Wet <- Quadrat_Wet %>%
filter(Lifeform == "Tree") %>%
select(-Habit)
View(Trees_Wet)
# Computing the diversity index of trees in Chepararia Ward
Tree_Diversity_Wet_Chep <- diversity(Trees_Wet$Chepararia, index = "shannon")
print(Tree_Diversity_Wet_Chep)
## [1] 2.475307
# Determining the tree diversity index in Riwo Ward
Tree_Diversity_Wet_Riwo <- diversity(Trees_Wet$Riwo, index = "shannon")
print(Tree_Diversity_Wet_Riwo)
## [1] 2.365646
# Computing tree diversity index in Suam Ward
Tree_Diversity_Wet_Suam <- diversity(Trees_Wet$Suam, index = "shannon")
print(Tree_Diversity_Wet_Suam)
## [1] 2.148001
# Creating a data frame of the wet season diversity indexes using vectors created from the diversity indexes of each life form in each ward.
Lifeforms <- c ("Grasses", "Forb", "Shrubs", "Trees")
Diversity_Wet_Chepararia <- c (Grass_Diversity_Wet_Chep, Forb_Diversity_Wet_Chep, Shrub_Diversity_Wet_Chep, Tree_Diversity_Wet_Chep)
Diversity_Wet_Riwo <- c (Grass_Diversity_Wet_Riwo, Forb_Diversity_Wet_Riwo, Shrub_Diversity_Wet_Riwo, Tree_Diversity_Wet_Riwo)
Diversity_Wet_Suam <- c (Grass_Diversity_Wet_Suam, Forb_Diversity_Wet_Suam, Shrub_Diversity_Wet_Suam, Tree_Diversity_Wet_Suam)
Species_Diversity_Wet <- data.frame(Lifeforms, Diversity_Wet_Chepararia, Diversity_Wet_Riwo, Diversity_Wet_Suam)
print(Species_Diversity_Wet)
## Lifeforms Diversity_Wet_Chepararia Diversity_Wet_Riwo Diversity_Wet_Suam
## 1 Grasses 2.027927 2.328463 1.800271
## 2 Forb 1.910521 2.276369 1.577628
## 3 Shrubs 2.352299 2.118296 2.434486
## 4 Trees 2.475307 2.365646 2.148001
# Renaming the dataframe's column names
colnames(Species_Diversity_Wet) <- c ("Lifeforms", "Chepararia", "Riwo", "Suam")
print(Species_Diversity_Wet)
## Lifeforms Chepararia Riwo Suam
## 1 Grasses 2.027927 2.328463 1.800271
## 2 Forb 1.910521 2.276369 1.577628
## 3 Shrubs 2.352299 2.118296 2.434486
## 4 Trees 2.475307 2.365646 2.148001
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package (Tidyverse was already previously loaded onto R)
Species_Diversity_Wet_Long <- Species_Diversity_Wet %>%
pivot_longer(cols = c("Chepararia", "Riwo", "Suam"), names_to = "Wards", values_to = "Diversity")
print(Species_Diversity_Wet_Long)
## # A tibble: 12 × 3
## Lifeforms Wards Diversity
## <chr> <chr> <dbl>
## 1 Grasses Chepararia 2.03
## 2 Grasses Riwo 2.33
## 3 Grasses Suam 1.80
## 4 Forb Chepararia 1.91
## 5 Forb Riwo 2.28
## 6 Forb Suam 1.58
## 7 Shrubs Chepararia 2.35
## 8 Shrubs Riwo 2.12
## 9 Shrubs Suam 2.43
## 10 Trees Chepararia 2.48
## 11 Trees Riwo 2.37
## 12 Trees Suam 2.15
library(ggthemes)
ggplot(data = Species_Diversity_Wet_Long,
mapping = aes(x = Wards,
y = Diversity, fill = Lifeforms)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Wet Season Species Diversity in Wards of West Pokot County",
x = "Wards",
y = "Diversity Index",
fill = "Life Forms") +
theme_minimal()

# ANOVA to assess variations in species diversity among the three wards"
Anova_Diversity_Wet <- aov (Diversity ~ Wards, data = Species_Diversity_Wet_Long)
summary(Anova_Diversity_Wet)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 0.1689 0.08444 1.124 0.367
## Residuals 9 0.6763 0.07514
# 2. DENSITY OF SPECIES DURING THE WET SEASON
# Species density (Individuals/ha) = Total number of Identified Species/Total Sample Plot Area * 10,000m2.
# The sample plot for grasses and forbs measured 0.5m*0.5m = 0.25m2, shrubs measured 5m*5m= 25m2, and trees were sampled within a 10m*10m quadrat = 100m2.
# The Quadrat_Wet dataset will be used.
# 2.1 Density of grass species across the three wards
# Density of grasses in Chepararia during the wet season
Density_Grasses_Wet_Chep <- Grasses_Wet$Chepararia/0.25 *10000
print(Density_Grasses_Wet_Chep)
## [1] 1080000 2040000 6320000 0 0 240000 40000 40000 3720000
## [10] 0 560000 1120000 160000 1040000 0 0 240000 0
## [19] 40000 160000 1480000 240000 0 0
# Density of grasses in Riwo during the wet season
Density_Grasses_Wet_Riwo <- Grasses_Wet$Riwo/0.25*10000
print(Density_Grasses_Wet_Riwo)
## [1] 0 1480000 5960000 1480000 240000 2440000 0 0 160000
## [10] 920000 1080000 2320000 0 360000 80000 520000 0 520000
## [19] 0 0 240000 1360000 2040000 40000
# Density of grasses in Suam during the wet season
Density_Grasses_Wet_Suam <- Grasses_Wet$Suam/0.25*10000
print(Density_Grasses_Wet_Suam)
## [1] 0 0 1880000 440000 600000 10560000 0 0
## [9] 120000 760000 3480000 2520000 0 120000 0 1160000
## [17] 0 360000 0 0 0 280000 640000 0
# Create a data frame of the grass species density across the three Wards (Land use systems)
Density_Grasses_Wet <- data.frame(Grasses_Wet$Species, Density_Grasses_Wet_Chep, Density_Grasses_Wet_Riwo, Density_Grasses_Wet_Suam)
print(Density_Grasses_Wet)
## Grasses_Wet.Species Density_Grasses_Wet_Chep Density_Grasses_Wet_Riwo
## 1 Aristida adoensis 1080000 0
## 2 Aristida adscensionis 2040000 1480000
## 3 Bothriocloa insculpta 6320000 5960000
## 4 Brachiaria deflexa 0 1480000
## 5 Cenchrus setigerus 0 240000
## 6 Chloris pycnothrix 240000 2440000
## 7 Chloris roxburghiana 40000 0
## 8 Cymbopogon pospischilii 40000 0
## 9 Cynodon dactylon 3720000 160000
## 10 Cyperus rotundus 0 920000
## 11 Dactyloctenium aegyptium 560000 1080000
## 12 Digitaria velutina 1120000 2320000
## 13 Echinochloa stagnina 160000 0
## 14 Eleusine indica 1040000 360000
## 15 Eragrostis brownii 0 80000
## 16 Eragrostis congesta 0 520000
## 17 Eragrostis superba 240000 0
## 18 Harpachne schimperi 0 520000
## 19 Heteropogon contortus 40000 0
## 20 Hyparrhenia lintonii 160000 0
## 21 Melinis minutiflora 1480000 240000
## 22 Melinis repens 240000 1360000
## 23 Setaria verticillata 0 2040000
## 24 Sporobolus pyramidalis 0 40000
## Density_Grasses_Wet_Suam
## 1 0
## 2 0
## 3 1880000
## 4 440000
## 5 600000
## 6 10560000
## 7 0
## 8 0
## 9 120000
## 10 760000
## 11 3480000
## 12 2520000
## 13 0
## 14 120000
## 15 0
## 16 1160000
## 17 0
## 18 360000
## 19 0
## 20 0
## 21 0
## 22 280000
## 23 640000
## 24 0
# Rename the column names for the Forbs density dataset
colnames(Density_Grasses_Wet) <- c ("Grass Species", "Chepararia", "Riwo", "Suam")
print(Density_Grasses_Wet)
## Grass Species Chepararia Riwo Suam
## 1 Aristida adoensis 1080000 0 0
## 2 Aristida adscensionis 2040000 1480000 0
## 3 Bothriocloa insculpta 6320000 5960000 1880000
## 4 Brachiaria deflexa 0 1480000 440000
## 5 Cenchrus setigerus 0 240000 600000
## 6 Chloris pycnothrix 240000 2440000 10560000
## 7 Chloris roxburghiana 40000 0 0
## 8 Cymbopogon pospischilii 40000 0 0
## 9 Cynodon dactylon 3720000 160000 120000
## 10 Cyperus rotundus 0 920000 760000
## 11 Dactyloctenium aegyptium 560000 1080000 3480000
## 12 Digitaria velutina 1120000 2320000 2520000
## 13 Echinochloa stagnina 160000 0 0
## 14 Eleusine indica 1040000 360000 120000
## 15 Eragrostis brownii 0 80000 0
## 16 Eragrostis congesta 0 520000 1160000
## 17 Eragrostis superba 240000 0 0
## 18 Harpachne schimperi 0 520000 360000
## 19 Heteropogon contortus 40000 0 0
## 20 Hyparrhenia lintonii 160000 0 0
## 21 Melinis minutiflora 1480000 240000 0
## 22 Melinis repens 240000 1360000 280000
## 23 Setaria verticillata 0 2040000 640000
## 24 Sporobolus pyramidalis 0 40000 0
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package (Tidyverse was already previously loaded onto R)
Density_Grasses_Wet_Long <- Density_Grasses_Wet %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Density")
print(Density_Grasses_Wet_Long)
## # A tibble: 72 × 3
## `Grass Species` Wards Density
## <chr> <chr> <dbl>
## 1 Aristida adoensis Chepararia 1080000
## 2 Aristida adoensis Riwo 0
## 3 Aristida adoensis Suam 0
## 4 Aristida adscensionis Chepararia 2040000
## 5 Aristida adscensionis Riwo 1480000
## 6 Aristida adscensionis Suam 0
## 7 Bothriocloa insculpta Chepararia 6320000
## 8 Bothriocloa insculpta Riwo 5960000
## 9 Bothriocloa insculpta Suam 1880000
## 10 Brachiaria deflexa Chepararia 0
## # … with 62 more rows
# Anova analysis assess the impact of land use on grass species density during the wet season
Anova_Density_Grasses_Wet <- aov (Density ~ Wards, data = Density_Grasses_Wet_Long)
summary (Anova_Density_Grasses_Wet)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 4.108e+11 2.054e+11 0.069 0.934
## Residuals 69 2.059e+14 2.984e+12
# Density of Forb species across the three wards
# Density of Forbs in Chepareria during the wet season
Density_Forbs_Wet_Chep <- Forbs_Wet$Chepararia/0.25 *10000
print(Density_Forbs_Wet_Chep)
## [1] 40000 80000 1280000 40000 0 80000 280000 40000 120000
## [10] 40000 0 40000 0 200000 40000 0 0 0
## [19] 0 40000 40000 3400000 0 760000 280000 40000 160000
## [28] 40000 0 320000 0 0
# Density of Forbs in Riwo during the wet season
Density_Forbs_Wet_Riwo <- Forbs_Wet$Riwo/0.25 *10000
print(Density_Forbs_Wet_Riwo)
## [1] 0 0 200000 0 1920000 320000 320000 0 0
## [10] 0 0 0 400000 80000 0 240000 80000 40000
## [19] 480000 120000 0 80000 1000000 640000 1400000 0 200000
## [28] 0 0 2960000 40000 80000
# Density of Forbs in Suam during the wet season
Density_Forbs_Wet_Suam <- Forbs_Wet$Suam/0.25 *10000
print(Density_Forbs_Wet_Suam)
## [1] 1000000 0 80000 0 0 0 0 0 0
## [10] 0 40000 0 440000 120000 0 0 0 0
## [19] 0 0 760000 5800000 1960000 240000 120000 0 40000
## [28] 0 120000 0 0 280000
# Create a data frame of the Forb species density across the three Wards (Land use systems)
Density_Forbs_Wet <- data.frame(Forbs_Wet$Species, Density_Forbs_Wet_Chep, Density_Forbs_Wet_Riwo, Density_Forbs_Wet_Suam)
print(Density_Forbs_Wet)
## Forbs_Wet.Species Density_Forbs_Wet_Chep Density_Forbs_Wet_Riwo
## 1 Acanthospermum hispidum 40000 0
## 2 Achyranthes aspera 80000 0
## 3 Ageratum conyzoides 1280000 200000
## 4 Asystasia schimperi 40000 0
## 5 Blepharis integrifolia 0 1920000
## 6 Bothriocline somalensis 80000 320000
## 7 Commelina benghalensis 280000 320000
## 8 Commicarpus stellatus 40000 0
## 9 Conyza floribunda 120000 0
## 10 Crabbea velutina 40000 0
## 11 Cyphostemma serpens 0 0
## 12 Datura stramonium 40000 0
## 13 Erlangea cordifolia 0 400000
## 14 Euphorbia hirta 200000 80000
## 15 Euphorbia prostrata 40000 0
## 16 Evolvulus alsinoides 0 240000
## 17 Galinsoga parviflora 0 80000
## 18 Heliotropium somalensis 0 40000
## 19 Justicia declipteroides 0 480000
## 20 Kalanchoe densiflora 40000 120000
## 21 Kalanchoe lanceolata 40000 0
## 22 Leonotis mollisma 3400000 80000
## 23 Peristrophe bicalyculata 0 1000000
## 24 Richardia brasiliensis 760000 640000
## 25 Ruellia patula 280000 1400000
## 26 Sonchus asper 40000 0
## 27 Targetes minuta 160000 200000
## 28 Trichodesma zeylanicum 40000 0
## 29 Tridax procumbens 0 0
## 30 Trifolium semipilosum 320000 2960000
## 31 Zornia reticulata 0 40000
## 32 Zornia setosa 0 80000
## Density_Forbs_Wet_Suam
## 1 1000000
## 2 0
## 3 80000
## 4 0
## 5 0
## 6 0
## 7 0
## 8 0
## 9 0
## 10 0
## 11 40000
## 12 0
## 13 440000
## 14 120000
## 15 0
## 16 0
## 17 0
## 18 0
## 19 0
## 20 0
## 21 760000
## 22 5800000
## 23 1960000
## 24 240000
## 25 120000
## 26 0
## 27 40000
## 28 0
## 29 120000
## 30 0
## 31 0
## 32 280000
# Rename the column names for the Forbs density dataset
colnames(Density_Forbs_Wet) <- c ("Forb Species", "Chepararia", "Riwo", "Suam")
print(Density_Forbs_Wet)
## Forb Species Chepararia Riwo Suam
## 1 Acanthospermum hispidum 40000 0 1000000
## 2 Achyranthes aspera 80000 0 0
## 3 Ageratum conyzoides 1280000 200000 80000
## 4 Asystasia schimperi 40000 0 0
## 5 Blepharis integrifolia 0 1920000 0
## 6 Bothriocline somalensis 80000 320000 0
## 7 Commelina benghalensis 280000 320000 0
## 8 Commicarpus stellatus 40000 0 0
## 9 Conyza floribunda 120000 0 0
## 10 Crabbea velutina 40000 0 0
## 11 Cyphostemma serpens 0 0 40000
## 12 Datura stramonium 40000 0 0
## 13 Erlangea cordifolia 0 400000 440000
## 14 Euphorbia hirta 200000 80000 120000
## 15 Euphorbia prostrata 40000 0 0
## 16 Evolvulus alsinoides 0 240000 0
## 17 Galinsoga parviflora 0 80000 0
## 18 Heliotropium somalensis 0 40000 0
## 19 Justicia declipteroides 0 480000 0
## 20 Kalanchoe densiflora 40000 120000 0
## 21 Kalanchoe lanceolata 40000 0 760000
## 22 Leonotis mollisma 3400000 80000 5800000
## 23 Peristrophe bicalyculata 0 1000000 1960000
## 24 Richardia brasiliensis 760000 640000 240000
## 25 Ruellia patula 280000 1400000 120000
## 26 Sonchus asper 40000 0 0
## 27 Targetes minuta 160000 200000 40000
## 28 Trichodesma zeylanicum 40000 0 0
## 29 Tridax procumbens 0 0 120000
## 30 Trifolium semipilosum 320000 2960000 0
## 31 Zornia reticulata 0 40000 0
## 32 Zornia setosa 0 80000 280000
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package (Tidyverse was already previously loaded onto R)
Density_Forbs_Wet_Long <- Density_Forbs_Wet %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Density")
print(Density_Forbs_Wet_Long)
## # A tibble: 96 × 3
## `Forb Species` Wards Density
## <chr> <chr> <dbl>
## 1 Acanthospermum hispidum Chepararia 40000
## 2 Acanthospermum hispidum Riwo 0
## 3 Acanthospermum hispidum Suam 1000000
## 4 Achyranthes aspera Chepararia 80000
## 5 Achyranthes aspera Riwo 0
## 6 Achyranthes aspera Suam 0
## 7 Ageratum conyzoides Chepararia 1280000
## 8 Ageratum conyzoides Riwo 200000
## 9 Ageratum conyzoides Suam 80000
## 10 Asystasia schimperi Chepararia 40000
## # … with 86 more rows
# Anova analysis assess the impact of land use on grass species density during the wet season
Anova_Density_Forbs_Wet <- aov (Density ~ Wards, data = Density_Forbs_Wet_Long)
summary (Anova_Density_Forbs_Wet)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 2.490e+11 1.245e+11 0.189 0.828
## Residuals 93 6.119e+13 6.580e+11
# Density of Shrub Species in the three wards
# Density of Shrubs in Chepareria during the wet season
Density_Shrubs_Wet_Chep <- Shrubs_Wet$Chepararia/25 *10000
print(Density_Shrubs_Wet_Chep)
## [1] 5200 800 400 0 1600 400 400 0 3200 400 2000 5600
## [13] 0 0 400 0 0 0 0 2800 0 3200 400 1200
## [25] 26000 800 0 16400 2800 400 2400 7200 400 1600 7600 48800
## [37] 2800 400 800
# Density of Shrubs in Riwo during the wet season
Density_Shrubs_Wet_Riwo <- Shrubs_Wet$Riwo/25 *10000
print(Density_Shrubs_Wet_Riwo)
## [1] 21600 0 6000 400 0 0 0 0 0 800
## [11] 2000 2800 17200 400 800 400 400 0 2800 1200
## [21] 8800 130000 0 14400 0 0 400 5600 3600 0
## [31] 1200 1200 9200 10000 32800 30000 0 0 400
# Density of Shrubs in Suam during the wet season
Density_Shrubs_Wet_Suam <- Shrubs_Wet$Suam/25 *10000
print(Density_Shrubs_Wet_Suam)
## [1] 16000 3200 12800 2000 0 0 0 1200 22800 800
## [11] 0 31600 400 0 0 0 0 2400 2000 400
## [21] 0 58000 0 10000 13200 0 3200 17200 2400 72400
## [31] 0 66800 102400 0 10400 34800 0 0 0
# Create a data frame of the shrub species density across the three Wards (Land use systems)
Density_Shrubs_Wet <- data.frame(Shrubs_Wet$Species , Density_Shrubs_Wet_Chep, Density_Shrubs_Wet_Riwo, Density_Shrubs_Wet_Suam)
print(Density_Shrubs_Wet)
## Shrubs_Wet.Species Density_Shrubs_Wet_Chep Density_Shrubs_Wet_Riwo
## 1 Abutilon mauritianum 5200 21600
## 2 Acacia brevispica 800 0
## 3 Acalypha fruticosa 400 6000
## 4 Acalypha neptunica 0 400
## 5 Achyranthes aspera 1600 0
## 6 Agave sisalana 400 0
## 7 Aloe vera 400 0
## 8 Barleria acanthoides 0 0
## 9 Barleria prionitis 3200 0
## 10 Capparis fascicularis 400 800
## 11 Carissa spinarum 2000 2000
## 12 Cissus rotundifolia 5600 2800
## 13 Combretum hereroense 0 17200
## 14 Dichrostachys cinerea 0 400
## 15 Euclea divinorum 400 800
## 16 Euphorbia gossypina 0 400
## 17 Flacourtia indica 0 400
## 18 Grewia tenax 0 0
## 19 Grewia trichocarpa 0 2800
## 20 Grewia villosa 2800 1200
## 21 Harrisonia abyssinica 0 8800
## 22 Hypoestes verticillaris 3200 130000
## 23 Indigofera arrecta 400 0
## 24 Ipomea kituensis 1200 14400
## 25 Lantana camara 26000 0
## 26 Lippia javanica 800 0
## 27 Maytenus heterophylla 0 400
## 28 Ocimum suave 16400 5600
## 29 Ormocarpum trichorcarpum 2800 3600
## 30 Sansevieria ehrenbergii 400 0
## 31 Searsia natalensis 2400 1200
## 32 Senna obtusifolia 7200 1200
## 33 Senna occidentalis 400 9200
## 34 Senna singueana 1600 10000
## 35 Sida cuneifolia 7600 32800
## 36 Solanum incanum 48800 30000
## 37 Tephrosa villosa 2800 0
## 38 Withania somnifera 400 0
## 39 Ximenia americana 800 400
## Density_Shrubs_Wet_Suam
## 1 16000
## 2 3200
## 3 12800
## 4 2000
## 5 0
## 6 0
## 7 0
## 8 1200
## 9 22800
## 10 800
## 11 0
## 12 31600
## 13 400
## 14 0
## 15 0
## 16 0
## 17 0
## 18 2400
## 19 2000
## 20 400
## 21 0
## 22 58000
## 23 0
## 24 10000
## 25 13200
## 26 0
## 27 3200
## 28 17200
## 29 2400
## 30 72400
## 31 0
## 32 66800
## 33 102400
## 34 0
## 35 10400
## 36 34800
## 37 0
## 38 0
## 39 0
# Rename the column names for the Shrubs density dataset
colnames(Density_Shrubs_Wet) <- c ("Shrub Species", "Chepararia", "Riwo", "Suam")
print(Density_Shrubs_Wet)
## Shrub Species Chepararia Riwo Suam
## 1 Abutilon mauritianum 5200 21600 16000
## 2 Acacia brevispica 800 0 3200
## 3 Acalypha fruticosa 400 6000 12800
## 4 Acalypha neptunica 0 400 2000
## 5 Achyranthes aspera 1600 0 0
## 6 Agave sisalana 400 0 0
## 7 Aloe vera 400 0 0
## 8 Barleria acanthoides 0 0 1200
## 9 Barleria prionitis 3200 0 22800
## 10 Capparis fascicularis 400 800 800
## 11 Carissa spinarum 2000 2000 0
## 12 Cissus rotundifolia 5600 2800 31600
## 13 Combretum hereroense 0 17200 400
## 14 Dichrostachys cinerea 0 400 0
## 15 Euclea divinorum 400 800 0
## 16 Euphorbia gossypina 0 400 0
## 17 Flacourtia indica 0 400 0
## 18 Grewia tenax 0 0 2400
## 19 Grewia trichocarpa 0 2800 2000
## 20 Grewia villosa 2800 1200 400
## 21 Harrisonia abyssinica 0 8800 0
## 22 Hypoestes verticillaris 3200 130000 58000
## 23 Indigofera arrecta 400 0 0
## 24 Ipomea kituensis 1200 14400 10000
## 25 Lantana camara 26000 0 13200
## 26 Lippia javanica 800 0 0
## 27 Maytenus heterophylla 0 400 3200
## 28 Ocimum suave 16400 5600 17200
## 29 Ormocarpum trichorcarpum 2800 3600 2400
## 30 Sansevieria ehrenbergii 400 0 72400
## 31 Searsia natalensis 2400 1200 0
## 32 Senna obtusifolia 7200 1200 66800
## 33 Senna occidentalis 400 9200 102400
## 34 Senna singueana 1600 10000 0
## 35 Sida cuneifolia 7600 32800 10400
## 36 Solanum incanum 48800 30000 34800
## 37 Tephrosa villosa 2800 0 0
## 38 Withania somnifera 400 0 0
## 39 Ximenia americana 800 400 0
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Density_Shrubs_Wet_Long <- Density_Shrubs_Wet %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Density")
print(Density_Shrubs_Wet_Long)
## # A tibble: 117 × 3
## `Shrub Species` Wards Density
## <chr> <chr> <dbl>
## 1 Abutilon mauritianum Chepararia 5200
## 2 Abutilon mauritianum Riwo 21600
## 3 Abutilon mauritianum Suam 16000
## 4 Acacia brevispica Chepararia 800
## 5 Acacia brevispica Riwo 0
## 6 Acacia brevispica Suam 3200
## 7 Acalypha fruticosa Chepararia 400
## 8 Acalypha fruticosa Riwo 6000
## 9 Acalypha fruticosa Suam 12800
## 10 Acalypha neptunica Chepararia 0
## # … with 107 more rows
# Anova analysis assess the impact of land use on Shrub species density during the wet season
Anova_Density_Shrubs_Wet <- aov (Density ~ Wards, data = Density_Shrubs_Wet_Long)
summary (Anova_Density_Shrubs_Wet)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 1.485e+09 742256410 2.005 0.139
## Residuals 114 4.220e+10 370212937
# Density of Tree Species in the three wards
# Density of Trees in Chepareria during the wet season
Density_Trees_Wet_Chep <- Trees_Wet$Chepararia/100 *10000
print(Density_Trees_Wet_Chep)
## [1] 600 4300 0 1600 4100 2100 800 1200 0 400 200 300 0 200 0
## [16] 0 500 700 0 2200 0 0 200 300 0 100 0 0 300 0
## [31] 0 0 0 0 100 300 0 300
#Density of Trees in Riwo during the wet season
Density_Trees_Wet_Riwo <- Trees_Wet$Riwo/100 *10000
print(Density_Trees_Wet_Riwo)
## [1] 0 1200 0 200 2300 1500 0 0 0 4600 100 4100 0 0 0
## [16] 200 100 0 0 600 200 100 0 3200 900 0 100 300 0 100
## [31] 300 0 100 600 400 400 7600 200
# Density of Shrubs in Suam during the wet season
Density_Trees_Wet_Suam <- Trees_Wet$Suam/100 *10000
print(Density_Trees_Wet_Suam)
## [1] 0 100 4600 300 11400 2900 1400 0 200 500 900 2400
## [13] 200 300 100 0 300 0 300 200 400 0 0 300
## [25] 200 0 0 0 0 0 0 400 300 0 100 600
## [37] 200 0
# Create a data frame of the Tree species density across the three Wards (Land use systems)
Density_Trees_Wet <- data.frame(Trees_Wet$Species,Density_Trees_Wet_Chep, Density_Trees_Wet_Riwo, Density_Trees_Wet_Suam)
print(Density_Trees_Wet)
## Trees_Wet.Species Density_Trees_Wet_Chep Density_Trees_Wet_Riwo
## 1 Acacia drepanolobium 600 0
## 2 Acacia gerrardii 4300 1200
## 3 Acacia hockii 0 0
## 4 Acacia mellifera 1600 200
## 5 Acacia nilotica 4100 2300
## 6 Acacia senegal 2100 1500
## 7 Acacia tortilis 800 0
## 8 Acokanthera oppositifolia 1200 0
## 9 Adenium obesum 0 0
## 10 Albizia amara 400 4600
## 11 Albizia anthelmintica 200 100
## 12 Balanites aegyptiaca 300 4100
## 13 Balanites pedicellaris 0 0
## 14 Boscia coriacea 200 0
## 15 Canthium glaucum 0 0
## 16 Combretum molle 0 200
## 17 Commiphora africana 500 100
## 18 Croton macrostachyus 700 0
## 19 Cussonia spicata 0 0
## 20 Euphorbia candelabrum 2200 600
## 21 Faidherbia albida 0 200
## 22 Ficus thonningii 0 100
## 23 Gravillea robusta 200 0
## 24 Grewia bicolor 300 3200
## 25 Lannea fulva 0 900
## 26 Olea africana 100 0
## 27 Piliostigma thonningii 0 100
## 28 Sclerocarya birrea 0 300
## 29 Sesbania sesban 300 0
## 30 Synadenium compactum 0 100
## 31 Tamarindus indica 0 300
## 32 Teclea nobilis 0 0
## 33 Terminalia brownii 0 100
## 34 Terminalia prunioides 0 600
## 35 Vangueria infausta 100 400
## 36 Zanthoxylum chalybeum 300 400
## 37 Ziziphus abyssinica 0 7600
## 38 Ziziphus mucronata 300 200
## Density_Trees_Wet_Suam
## 1 0
## 2 100
## 3 4600
## 4 300
## 5 11400
## 6 2900
## 7 1400
## 8 0
## 9 200
## 10 500
## 11 900
## 12 2400
## 13 200
## 14 300
## 15 100
## 16 0
## 17 300
## 18 0
## 19 300
## 20 200
## 21 400
## 22 0
## 23 0
## 24 300
## 25 200
## 26 0
## 27 0
## 28 0
## 29 0
## 30 0
## 31 0
## 32 400
## 33 300
## 34 0
## 35 100
## 36 600
## 37 200
## 38 0
# Rename the column names for the Trees density dataset
colnames(Density_Trees_Wet) <- c ("Tree Species", "Chepararia", "Riwo", "Suam")
print(Density_Trees_Wet)
## Tree Species Chepararia Riwo Suam
## 1 Acacia drepanolobium 600 0 0
## 2 Acacia gerrardii 4300 1200 100
## 3 Acacia hockii 0 0 4600
## 4 Acacia mellifera 1600 200 300
## 5 Acacia nilotica 4100 2300 11400
## 6 Acacia senegal 2100 1500 2900
## 7 Acacia tortilis 800 0 1400
## 8 Acokanthera oppositifolia 1200 0 0
## 9 Adenium obesum 0 0 200
## 10 Albizia amara 400 4600 500
## 11 Albizia anthelmintica 200 100 900
## 12 Balanites aegyptiaca 300 4100 2400
## 13 Balanites pedicellaris 0 0 200
## 14 Boscia coriacea 200 0 300
## 15 Canthium glaucum 0 0 100
## 16 Combretum molle 0 200 0
## 17 Commiphora africana 500 100 300
## 18 Croton macrostachyus 700 0 0
## 19 Cussonia spicata 0 0 300
## 20 Euphorbia candelabrum 2200 600 200
## 21 Faidherbia albida 0 200 400
## 22 Ficus thonningii 0 100 0
## 23 Gravillea robusta 200 0 0
## 24 Grewia bicolor 300 3200 300
## 25 Lannea fulva 0 900 200
## 26 Olea africana 100 0 0
## 27 Piliostigma thonningii 0 100 0
## 28 Sclerocarya birrea 0 300 0
## 29 Sesbania sesban 300 0 0
## 30 Synadenium compactum 0 100 0
## 31 Tamarindus indica 0 300 0
## 32 Teclea nobilis 0 0 400
## 33 Terminalia brownii 0 100 300
## 34 Terminalia prunioides 0 600 0
## 35 Vangueria infausta 100 400 100
## 36 Zanthoxylum chalybeum 300 400 600
## 37 Ziziphus abyssinica 0 7600 200
## 38 Ziziphus mucronata 300 200 0
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Density_Trees_Wet_Long <- Density_Trees_Wet %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Density")
print(Density_Trees_Wet_Long)
## # A tibble: 114 × 3
## `Tree Species` Wards Density
## <chr> <chr> <dbl>
## 1 Acacia drepanolobium Chepararia 600
## 2 Acacia drepanolobium Riwo 0
## 3 Acacia drepanolobium Suam 0
## 4 Acacia gerrardii Chepararia 4300
## 5 Acacia gerrardii Riwo 1200
## 6 Acacia gerrardii Suam 100
## 7 Acacia hockii Chepararia 0
## 8 Acacia hockii Riwo 0
## 9 Acacia hockii Suam 4600
## 10 Acacia mellifera Chepararia 1600
## # … with 104 more rows
# Anova analysis assess the impact of land use on Shrub species density during the wet season
Anova_Density_Trees_Wet <- aov (Density ~ Wards, data = Density_Trees_Wet_Long)
summary (Anova_Density_Trees_Wet)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 1188070 594035 0.234 0.792
## Residuals 111 282343158 2543632
#3. SPECIES COMPOSITION
# Species Count
print(Quadrat_Wet)
## # A tibble: 133 × 6
## Lifeform Species Chepararia Riwo Suam Habit
## <chr> <chr> <dbl> <dbl> <dbl> <chr>
## 1 Grass Aristida adoensis 27 0 0 Increaser
## 2 Grass Aristida adscensionis 51 37 0 Increaser
## 3 Grass Bothriocloa insculpta 158 149 47 Increaser
## 4 Grass Brachiaria deflexa 0 37 11 Increaser
## 5 Grass Cenchrus setigerus 0 6 15 Decreaser
## 6 Grass Chloris pycnothrix 6 61 264 Increaser
## 7 Grass Chloris roxburghiana 1 0 0 Decreaser
## 8 Grass Cymbopogon pospischilii 1 0 0 Decreaser
## 9 Grass Cynodon dactylon 93 4 3 Decreaser
## 10 Grass Cyperus rotundus 0 23 19 Increaser
## # … with 123 more rows
Quadrat_Wet %>% count(Lifeform == "Grass")
## # A tibble: 2 × 2
## `Lifeform == "Grass"` n
## <lgl> <int>
## 1 FALSE 109
## 2 TRUE 24
Quadrat_Wet %>% count(Lifeform == "Forb")
## # A tibble: 2 × 2
## `Lifeform == "Forb"` n
## <lgl> <int>
## 1 FALSE 101
## 2 TRUE 32
Quadrat_Wet %>% count(Lifeform == "Shrub")
## # A tibble: 2 × 2
## `Lifeform == "Shrub"` n
## <lgl> <int>
## 1 FALSE 94
## 2 TRUE 39
Quadrat_Wet %>% count(Lifeform == "Tree")
## # A tibble: 2 × 2
## `Lifeform == "Tree"` n
## <lgl> <int>
## 1 FALSE 95
## 2 TRUE 38
Lifeforms <- c ("Grasses", "Forbs", "Shrubs", "Trees")
Total_Count_Wet <- c(24,32,36,38)
Grasses_Wet %>% count(Grasses_Wet$Habit == "Increaser")
## # A tibble: 2 × 2
## `Grasses_Wet$Habit == "Increaser"` n
## <lgl> <int>
## 1 FALSE 9
## 2 TRUE 15
Grasses_Wet %>% count(Grasses_Wet$Habit == "Decreaser")
## # A tibble: 2 × 2
## `Grasses_Wet$Habit == "Decreaser"` n
## <lgl> <int>
## 1 FALSE 15
## 2 TRUE 9
Grasses_Habit <- c ("Increasers", "Decreasers")
Habits_Count_Wet <- c (15,9)
Grasses_Habit_Count_Wet <- data.frame(Grasses_Habit, Habits_Count_Wet)
print(Grasses_Habit_Count_Wet)
## Grasses_Habit Habits_Count_Wet
## 1 Increasers 15
## 2 Decreasers 9
Increasers_Wet <- (15/(15+9))*100
print(Increasers_Wet)
## [1] 62.5
Decreasers_Wet <- (9/(15+9)*100)
print(Decreasers_Wet)
## [1] 37.5
percent_Habit_Count_Wet <- c(Increasers_Wet, Decreasers_Wet)
Grasses_Habit_Percent_Wet <- data.frame(Grasses_Habit_Count_Wet, percent_Habit_Count_Wet)
print(Grasses_Habit_Percent_Wet)
## Grasses_Habit Habits_Count_Wet percent_Habit_Count_Wet
## 1 Increasers 15 62.5
## 2 Decreasers 9 37.5
# Percent Grass Species Composition
# Percent Grass species Composition in Chepararia
sum(Grasses_Wet$Chepararia)
## [1] 463
Composition_Grasses_Wet_Chep <- (Grasses_Wet$Chepararia/463)*100
print(Composition_Grasses_Wet_Chep)
## [1] 5.8315335 11.0151188 34.1252700 0.0000000 0.0000000 1.2958963
## [7] 0.2159827 0.2159827 20.0863931 0.0000000 3.0237581 6.0475162
## [13] 0.8639309 5.6155508 0.0000000 0.0000000 1.2958963 0.0000000
## [19] 0.2159827 0.8639309 7.9913607 1.2958963 0.0000000 0.0000000
sum(Composition_Grasses_Wet_Chep)
## [1] 100
#Percent Grass species Composition in Riwo
sum(Grasses_Wet$Riwo)
## [1] 531
Composition_Grasses_Wet_Riwo <- (Grasses_Wet$Riwo/531)*100
print(Composition_Grasses_Wet_Riwo)
## [1] 0.0000000 6.9679849 28.0602637 6.9679849 1.1299435 11.4877589
## [7] 0.0000000 0.0000000 0.7532957 4.3314501 5.0847458 10.9227872
## [13] 0.0000000 1.6949153 0.3766478 2.4482109 0.0000000 2.4482109
## [19] 0.0000000 0.0000000 1.1299435 6.4030132 9.6045198 0.1883239
sum(Composition_Grasses_Wet_Riwo)
## [1] 100
#Percent Grass species Composition in Suam
sum(Grasses_Wet$Suam)
## [1] 573
Composition_Grasses_Wet_Suam <- (Grasses_Wet$Suam/573)*100
print(Composition_Grasses_Wet_Suam)
## [1] 0.0000000 0.0000000 8.2024433 1.9197208 2.6178010 46.0732984
## [7] 0.0000000 0.0000000 0.5235602 3.3158813 15.1832461 10.9947644
## [13] 0.0000000 0.5235602 0.0000000 5.0610820 0.0000000 1.5706806
## [19] 0.0000000 0.0000000 0.0000000 1.2216405 2.7923211 0.0000000
sum(Composition_Grasses_Wet_Suam)
## [1] 100
# Create a data frame of the Grass species composition percent across the three Wards (Land use systems)
Composition_Grasses_Wet <- data.frame(Grasses_Wet$Species, Composition_Grasses_Wet_Chep, Composition_Grasses_Wet_Riwo, Composition_Grasses_Wet_Suam)
print(Composition_Grasses_Wet)
## Grasses_Wet.Species Composition_Grasses_Wet_Chep
## 1 Aristida adoensis 5.8315335
## 2 Aristida adscensionis 11.0151188
## 3 Bothriocloa insculpta 34.1252700
## 4 Brachiaria deflexa 0.0000000
## 5 Cenchrus setigerus 0.0000000
## 6 Chloris pycnothrix 1.2958963
## 7 Chloris roxburghiana 0.2159827
## 8 Cymbopogon pospischilii 0.2159827
## 9 Cynodon dactylon 20.0863931
## 10 Cyperus rotundus 0.0000000
## 11 Dactyloctenium aegyptium 3.0237581
## 12 Digitaria velutina 6.0475162
## 13 Echinochloa stagnina 0.8639309
## 14 Eleusine indica 5.6155508
## 15 Eragrostis brownii 0.0000000
## 16 Eragrostis congesta 0.0000000
## 17 Eragrostis superba 1.2958963
## 18 Harpachne schimperi 0.0000000
## 19 Heteropogon contortus 0.2159827
## 20 Hyparrhenia lintonii 0.8639309
## 21 Melinis minutiflora 7.9913607
## 22 Melinis repens 1.2958963
## 23 Setaria verticillata 0.0000000
## 24 Sporobolus pyramidalis 0.0000000
## Composition_Grasses_Wet_Riwo Composition_Grasses_Wet_Suam
## 1 0.0000000 0.0000000
## 2 6.9679849 0.0000000
## 3 28.0602637 8.2024433
## 4 6.9679849 1.9197208
## 5 1.1299435 2.6178010
## 6 11.4877589 46.0732984
## 7 0.0000000 0.0000000
## 8 0.0000000 0.0000000
## 9 0.7532957 0.5235602
## 10 4.3314501 3.3158813
## 11 5.0847458 15.1832461
## 12 10.9227872 10.9947644
## 13 0.0000000 0.0000000
## 14 1.6949153 0.5235602
## 15 0.3766478 0.0000000
## 16 2.4482109 5.0610820
## 17 0.0000000 0.0000000
## 18 2.4482109 1.5706806
## 19 0.0000000 0.0000000
## 20 0.0000000 0.0000000
## 21 1.1299435 0.0000000
## 22 6.4030132 1.2216405
## 23 9.6045198 2.7923211
## 24 0.1883239 0.0000000
# Rename the column names for the Composition_Grasses_Wet newly created dataframe
colnames(Composition_Grasses_Wet) <- c ("Grass Species", "Chepararia", "Riwo", "Suam")
print(Composition_Grasses_Wet)
## Grass Species Chepararia Riwo Suam
## 1 Aristida adoensis 5.8315335 0.0000000 0.0000000
## 2 Aristida adscensionis 11.0151188 6.9679849 0.0000000
## 3 Bothriocloa insculpta 34.1252700 28.0602637 8.2024433
## 4 Brachiaria deflexa 0.0000000 6.9679849 1.9197208
## 5 Cenchrus setigerus 0.0000000 1.1299435 2.6178010
## 6 Chloris pycnothrix 1.2958963 11.4877589 46.0732984
## 7 Chloris roxburghiana 0.2159827 0.0000000 0.0000000
## 8 Cymbopogon pospischilii 0.2159827 0.0000000 0.0000000
## 9 Cynodon dactylon 20.0863931 0.7532957 0.5235602
## 10 Cyperus rotundus 0.0000000 4.3314501 3.3158813
## 11 Dactyloctenium aegyptium 3.0237581 5.0847458 15.1832461
## 12 Digitaria velutina 6.0475162 10.9227872 10.9947644
## 13 Echinochloa stagnina 0.8639309 0.0000000 0.0000000
## 14 Eleusine indica 5.6155508 1.6949153 0.5235602
## 15 Eragrostis brownii 0.0000000 0.3766478 0.0000000
## 16 Eragrostis congesta 0.0000000 2.4482109 5.0610820
## 17 Eragrostis superba 1.2958963 0.0000000 0.0000000
## 18 Harpachne schimperi 0.0000000 2.4482109 1.5706806
## 19 Heteropogon contortus 0.2159827 0.0000000 0.0000000
## 20 Hyparrhenia lintonii 0.8639309 0.0000000 0.0000000
## 21 Melinis minutiflora 7.9913607 1.1299435 0.0000000
## 22 Melinis repens 1.2958963 6.4030132 1.2216405
## 23 Setaria verticillata 0.0000000 9.6045198 2.7923211
## 24 Sporobolus pyramidalis 0.0000000 0.1883239 0.0000000
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Composition_Grasses_Wet_Long <- Composition_Grasses_Wet %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Composition")
print(Composition_Grasses_Wet_Long)
## # A tibble: 72 × 3
## `Grass Species` Wards Composition
## <chr> <chr> <dbl>
## 1 Aristida adoensis Chepararia 5.83
## 2 Aristida adoensis Riwo 0
## 3 Aristida adoensis Suam 0
## 4 Aristida adscensionis Chepararia 11.0
## 5 Aristida adscensionis Riwo 6.97
## 6 Aristida adscensionis Suam 0
## 7 Bothriocloa insculpta Chepararia 34.1
## 8 Bothriocloa insculpta Riwo 28.1
## 9 Bothriocloa insculpta Suam 8.20
## 10 Brachiaria deflexa Chepararia 0
## # … with 62 more rows
# Anova analysis assess the impact of land use on Grass species composition during the wet season
Anova_Composition_Grasses_Wet <- aov (Composition ~ Wards, data = Composition_Grasses_Wet_Long)
summary (Anova_Composition_Grasses_Wet)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 0 0 0 1
## Residuals 69 4554 66
#Percent Forb Species Composition
#Percent Forbs composition in Chepararia
sum(Forbs_Wet$Chepararia)
## [1] 184
Composition_Forbs_Wet_Chep <- (Forbs_Wet$Chepararia/184)*100
print(Composition_Forbs_Wet_Chep)
## [1] 0.5434783 1.0869565 17.3913043 0.5434783 0.0000000 1.0869565
## [7] 3.8043478 0.5434783 1.6304348 0.5434783 0.0000000 0.5434783
## [13] 0.0000000 2.7173913 0.5434783 0.0000000 0.0000000 0.0000000
## [19] 0.0000000 0.5434783 0.5434783 46.1956522 0.0000000 10.3260870
## [25] 3.8043478 0.5434783 2.1739130 0.5434783 0.0000000 4.3478261
## [31] 0.0000000 0.0000000
sum(Composition_Forbs_Wet_Chep)
## [1] 100
#Percent Forbs Composition in Riwo
sum(Forbs_Wet$Riwo)
## [1] 265
Composition_Forbs_Wet_Riwo <- (Forbs_Wet$Riwo/265)*100
print(Composition_Forbs_Wet_Riwo)
## [1] 0.0000000 0.0000000 1.8867925 0.0000000 18.1132075 3.0188679
## [7] 3.0188679 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## [13] 3.7735849 0.7547170 0.0000000 2.2641509 0.7547170 0.3773585
## [19] 4.5283019 1.1320755 0.0000000 0.7547170 9.4339623 6.0377358
## [25] 13.2075472 0.0000000 1.8867925 0.0000000 0.0000000 27.9245283
## [31] 0.3773585 0.7547170
sum(Composition_Forbs_Wet_Riwo)
## [1] 100
#Percent Forbs Composition in Suam
sum(Forbs_Wet$Suam)
## [1] 275
Composition_Forbs_Wet_Suam <- (Forbs_Wet$Suam/275)*100
print(Composition_Forbs_Wet_Suam)
## [1] 9.0909091 0.0000000 0.7272727 0.0000000 0.0000000 0.0000000
## [7] 0.0000000 0.0000000 0.0000000 0.0000000 0.3636364 0.0000000
## [13] 4.0000000 1.0909091 0.0000000 0.0000000 0.0000000 0.0000000
## [19] 0.0000000 0.0000000 6.9090909 52.7272727 17.8181818 2.1818182
## [25] 1.0909091 0.0000000 0.3636364 0.0000000 1.0909091 0.0000000
## [31] 0.0000000 2.5454545
sum(Composition_Forbs_Wet_Suam)
## [1] 100
# Create a data frame of the Forb species composition percentages across the three Wards (Land use systems)
Composition_Forbs_Wet <- data.frame(Forbs_Wet$Species, Composition_Forbs_Wet_Chep, Composition_Forbs_Wet_Riwo, Composition_Forbs_Wet_Suam)
print(Composition_Forbs_Wet)
## Forbs_Wet.Species Composition_Forbs_Wet_Chep
## 1 Acanthospermum hispidum 0.5434783
## 2 Achyranthes aspera 1.0869565
## 3 Ageratum conyzoides 17.3913043
## 4 Asystasia schimperi 0.5434783
## 5 Blepharis integrifolia 0.0000000
## 6 Bothriocline somalensis 1.0869565
## 7 Commelina benghalensis 3.8043478
## 8 Commicarpus stellatus 0.5434783
## 9 Conyza floribunda 1.6304348
## 10 Crabbea velutina 0.5434783
## 11 Cyphostemma serpens 0.0000000
## 12 Datura stramonium 0.5434783
## 13 Erlangea cordifolia 0.0000000
## 14 Euphorbia hirta 2.7173913
## 15 Euphorbia prostrata 0.5434783
## 16 Evolvulus alsinoides 0.0000000
## 17 Galinsoga parviflora 0.0000000
## 18 Heliotropium somalensis 0.0000000
## 19 Justicia declipteroides 0.0000000
## 20 Kalanchoe densiflora 0.5434783
## 21 Kalanchoe lanceolata 0.5434783
## 22 Leonotis mollisma 46.1956522
## 23 Peristrophe bicalyculata 0.0000000
## 24 Richardia brasiliensis 10.3260870
## 25 Ruellia patula 3.8043478
## 26 Sonchus asper 0.5434783
## 27 Targetes minuta 2.1739130
## 28 Trichodesma zeylanicum 0.5434783
## 29 Tridax procumbens 0.0000000
## 30 Trifolium semipilosum 4.3478261
## 31 Zornia reticulata 0.0000000
## 32 Zornia setosa 0.0000000
## Composition_Forbs_Wet_Riwo Composition_Forbs_Wet_Suam
## 1 0.0000000 9.0909091
## 2 0.0000000 0.0000000
## 3 1.8867925 0.7272727
## 4 0.0000000 0.0000000
## 5 18.1132075 0.0000000
## 6 3.0188679 0.0000000
## 7 3.0188679 0.0000000
## 8 0.0000000 0.0000000
## 9 0.0000000 0.0000000
## 10 0.0000000 0.0000000
## 11 0.0000000 0.3636364
## 12 0.0000000 0.0000000
## 13 3.7735849 4.0000000
## 14 0.7547170 1.0909091
## 15 0.0000000 0.0000000
## 16 2.2641509 0.0000000
## 17 0.7547170 0.0000000
## 18 0.3773585 0.0000000
## 19 4.5283019 0.0000000
## 20 1.1320755 0.0000000
## 21 0.0000000 6.9090909
## 22 0.7547170 52.7272727
## 23 9.4339623 17.8181818
## 24 6.0377358 2.1818182
## 25 13.2075472 1.0909091
## 26 0.0000000 0.0000000
## 27 1.8867925 0.3636364
## 28 0.0000000 0.0000000
## 29 0.0000000 1.0909091
## 30 27.9245283 0.0000000
## 31 0.3773585 0.0000000
## 32 0.7547170 2.5454545
# Rename the column names for the Composition_Grasses_Wet newly created dataframe
colnames(Composition_Forbs_Wet) <- c ("Forb Species", "Chepararia", "Riwo", "Suam")
print(Composition_Forbs_Wet)
## Forb Species Chepararia Riwo Suam
## 1 Acanthospermum hispidum 0.5434783 0.0000000 9.0909091
## 2 Achyranthes aspera 1.0869565 0.0000000 0.0000000
## 3 Ageratum conyzoides 17.3913043 1.8867925 0.7272727
## 4 Asystasia schimperi 0.5434783 0.0000000 0.0000000
## 5 Blepharis integrifolia 0.0000000 18.1132075 0.0000000
## 6 Bothriocline somalensis 1.0869565 3.0188679 0.0000000
## 7 Commelina benghalensis 3.8043478 3.0188679 0.0000000
## 8 Commicarpus stellatus 0.5434783 0.0000000 0.0000000
## 9 Conyza floribunda 1.6304348 0.0000000 0.0000000
## 10 Crabbea velutina 0.5434783 0.0000000 0.0000000
## 11 Cyphostemma serpens 0.0000000 0.0000000 0.3636364
## 12 Datura stramonium 0.5434783 0.0000000 0.0000000
## 13 Erlangea cordifolia 0.0000000 3.7735849 4.0000000
## 14 Euphorbia hirta 2.7173913 0.7547170 1.0909091
## 15 Euphorbia prostrata 0.5434783 0.0000000 0.0000000
## 16 Evolvulus alsinoides 0.0000000 2.2641509 0.0000000
## 17 Galinsoga parviflora 0.0000000 0.7547170 0.0000000
## 18 Heliotropium somalensis 0.0000000 0.3773585 0.0000000
## 19 Justicia declipteroides 0.0000000 4.5283019 0.0000000
## 20 Kalanchoe densiflora 0.5434783 1.1320755 0.0000000
## 21 Kalanchoe lanceolata 0.5434783 0.0000000 6.9090909
## 22 Leonotis mollisma 46.1956522 0.7547170 52.7272727
## 23 Peristrophe bicalyculata 0.0000000 9.4339623 17.8181818
## 24 Richardia brasiliensis 10.3260870 6.0377358 2.1818182
## 25 Ruellia patula 3.8043478 13.2075472 1.0909091
## 26 Sonchus asper 0.5434783 0.0000000 0.0000000
## 27 Targetes minuta 2.1739130 1.8867925 0.3636364
## 28 Trichodesma zeylanicum 0.5434783 0.0000000 0.0000000
## 29 Tridax procumbens 0.0000000 0.0000000 1.0909091
## 30 Trifolium semipilosum 4.3478261 27.9245283 0.0000000
## 31 Zornia reticulata 0.0000000 0.3773585 0.0000000
## 32 Zornia setosa 0.0000000 0.7547170 2.5454545
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Composition_Forbs_Wet_Long <- Composition_Forbs_Wet %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Composition")
print(Composition_Forbs_Wet_Long)
## # A tibble: 96 × 3
## `Forb Species` Wards Composition
## <chr> <chr> <dbl>
## 1 Acanthospermum hispidum Chepararia 0.543
## 2 Acanthospermum hispidum Riwo 0
## 3 Acanthospermum hispidum Suam 9.09
## 4 Achyranthes aspera Chepararia 1.09
## 5 Achyranthes aspera Riwo 0
## 6 Achyranthes aspera Suam 0
## 7 Ageratum conyzoides Chepararia 17.4
## 8 Ageratum conyzoides Riwo 1.89
## 9 Ageratum conyzoides Suam 0.727
## 10 Asystasia schimperi Chepararia 0.543
## # … with 86 more rows
# Anova analysis assess the impact of land use on Grass species composition during the wet season
Anova_Composition_Forbs_Wet <- aov (Composition ~ Wards, data = Composition_Forbs_Wet_Long)
summary (Anova_Composition_Forbs_Wet)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 0 0.00 0 1
## Residuals 93 6410 68.92
#Percent Shrub Species Composition
#Percent Shrubs Composition in Chepararia
sum(Shrubs_Wet$Chepararia)
## [1] 366
Composition_Shrubs_Wet_Chep <- (Shrubs_Wet$Chepararia/366)*100
print(Composition_Shrubs_Wet_Chep)
## [1] 3.5519126 0.5464481 0.2732240 0.0000000 1.0928962 0.2732240
## [7] 0.2732240 0.0000000 2.1857923 0.2732240 1.3661202 3.8251366
## [13] 0.0000000 0.0000000 0.2732240 0.0000000 0.0000000 0.0000000
## [19] 0.0000000 1.9125683 0.0000000 2.1857923 0.2732240 0.8196721
## [25] 17.7595628 0.5464481 0.0000000 11.2021858 1.9125683 0.2732240
## [31] 1.6393443 4.9180328 0.2732240 1.0928962 5.1912568 33.3333333
## [37] 1.9125683 0.2732240 0.5464481
sum(Composition_Shrubs_Wet_Chep)
## [1] 100
#Percent Shrubs Composition in Riwo
sum(Shrubs_Wet$Riwo)
## [1] 761
Composition_Shrubs_Wet_Riwo <- (Shrubs_Wet$Riwo/761)*100
print(Composition_Shrubs_Wet_Riwo)
## [1] 7.0959264 0.0000000 1.9710907 0.1314060 0.0000000 0.0000000
## [7] 0.0000000 0.0000000 0.0000000 0.2628121 0.6570302 0.9198423
## [13] 5.6504599 0.1314060 0.2628121 0.1314060 0.1314060 0.0000000
## [19] 0.9198423 0.3942181 2.8909330 42.7069645 0.0000000 4.7306176
## [25] 0.0000000 0.0000000 0.1314060 1.8396846 1.1826544 0.0000000
## [31] 0.3942181 0.3942181 3.0223390 3.2851511 10.7752957 9.8554534
## [37] 0.0000000 0.0000000 0.1314060
sum(Composition_Shrubs_Wet_Riwo)
## [1] 100
#Percent Shrubs Composition in Suam
sum(Shrubs_Wet$Suam)
## [1] 1216
Composition_Shrubs_Wet_Suam <- (Shrubs_Wet$Suam/1216)*100
print(Composition_Shrubs_Wet_Suam)
## [1] 3.28947368 0.65789474 2.63157895 0.41118421 0.00000000 0.00000000
## [7] 0.00000000 0.24671053 4.68750000 0.16447368 0.00000000 6.49671053
## [13] 0.08223684 0.00000000 0.00000000 0.00000000 0.00000000 0.49342105
## [19] 0.41118421 0.08223684 0.00000000 11.92434211 0.00000000 2.05592105
## [25] 2.71381579 0.00000000 0.65789474 3.53618421 0.49342105 14.88486842
## [31] 0.00000000 13.73355263 21.05263158 0.00000000 2.13815789 7.15460526
## [37] 0.00000000 0.00000000 0.00000000
sum(Composition_Shrubs_Wet_Suam)
## [1] 100
# Create a data frame of the Shrub species composition percentages across the three Wards (Land use systems)
Composition_Shrubs_Wet <- data.frame(Shrubs_Wet$Species, Composition_Shrubs_Wet_Chep, Composition_Shrubs_Wet_Riwo, Composition_Shrubs_Wet_Suam)
print(Composition_Shrubs_Wet)
## Shrubs_Wet.Species Composition_Shrubs_Wet_Chep
## 1 Abutilon mauritianum 3.5519126
## 2 Acacia brevispica 0.5464481
## 3 Acalypha fruticosa 0.2732240
## 4 Acalypha neptunica 0.0000000
## 5 Achyranthes aspera 1.0928962
## 6 Agave sisalana 0.2732240
## 7 Aloe vera 0.2732240
## 8 Barleria acanthoides 0.0000000
## 9 Barleria prionitis 2.1857923
## 10 Capparis fascicularis 0.2732240
## 11 Carissa spinarum 1.3661202
## 12 Cissus rotundifolia 3.8251366
## 13 Combretum hereroense 0.0000000
## 14 Dichrostachys cinerea 0.0000000
## 15 Euclea divinorum 0.2732240
## 16 Euphorbia gossypina 0.0000000
## 17 Flacourtia indica 0.0000000
## 18 Grewia tenax 0.0000000
## 19 Grewia trichocarpa 0.0000000
## 20 Grewia villosa 1.9125683
## 21 Harrisonia abyssinica 0.0000000
## 22 Hypoestes verticillaris 2.1857923
## 23 Indigofera arrecta 0.2732240
## 24 Ipomea kituensis 0.8196721
## 25 Lantana camara 17.7595628
## 26 Lippia javanica 0.5464481
## 27 Maytenus heterophylla 0.0000000
## 28 Ocimum suave 11.2021858
## 29 Ormocarpum trichorcarpum 1.9125683
## 30 Sansevieria ehrenbergii 0.2732240
## 31 Searsia natalensis 1.6393443
## 32 Senna obtusifolia 4.9180328
## 33 Senna occidentalis 0.2732240
## 34 Senna singueana 1.0928962
## 35 Sida cuneifolia 5.1912568
## 36 Solanum incanum 33.3333333
## 37 Tephrosa villosa 1.9125683
## 38 Withania somnifera 0.2732240
## 39 Ximenia americana 0.5464481
## Composition_Shrubs_Wet_Riwo Composition_Shrubs_Wet_Suam
## 1 7.0959264 3.28947368
## 2 0.0000000 0.65789474
## 3 1.9710907 2.63157895
## 4 0.1314060 0.41118421
## 5 0.0000000 0.00000000
## 6 0.0000000 0.00000000
## 7 0.0000000 0.00000000
## 8 0.0000000 0.24671053
## 9 0.0000000 4.68750000
## 10 0.2628121 0.16447368
## 11 0.6570302 0.00000000
## 12 0.9198423 6.49671053
## 13 5.6504599 0.08223684
## 14 0.1314060 0.00000000
## 15 0.2628121 0.00000000
## 16 0.1314060 0.00000000
## 17 0.1314060 0.00000000
## 18 0.0000000 0.49342105
## 19 0.9198423 0.41118421
## 20 0.3942181 0.08223684
## 21 2.8909330 0.00000000
## 22 42.7069645 11.92434211
## 23 0.0000000 0.00000000
## 24 4.7306176 2.05592105
## 25 0.0000000 2.71381579
## 26 0.0000000 0.00000000
## 27 0.1314060 0.65789474
## 28 1.8396846 3.53618421
## 29 1.1826544 0.49342105
## 30 0.0000000 14.88486842
## 31 0.3942181 0.00000000
## 32 0.3942181 13.73355263
## 33 3.0223390 21.05263158
## 34 3.2851511 0.00000000
## 35 10.7752957 2.13815789
## 36 9.8554534 7.15460526
## 37 0.0000000 0.00000000
## 38 0.0000000 0.00000000
## 39 0.1314060 0.00000000
# Rename the column names for the Composition_Shrubs_Wet newly created dataframe
colnames(Composition_Shrubs_Wet) <- c ("Shrub Species", "Chepararia", "Riwo", "Suam")
print(Composition_Shrubs_Wet)
## Shrub Species Chepararia Riwo Suam
## 1 Abutilon mauritianum 3.5519126 7.0959264 3.28947368
## 2 Acacia brevispica 0.5464481 0.0000000 0.65789474
## 3 Acalypha fruticosa 0.2732240 1.9710907 2.63157895
## 4 Acalypha neptunica 0.0000000 0.1314060 0.41118421
## 5 Achyranthes aspera 1.0928962 0.0000000 0.00000000
## 6 Agave sisalana 0.2732240 0.0000000 0.00000000
## 7 Aloe vera 0.2732240 0.0000000 0.00000000
## 8 Barleria acanthoides 0.0000000 0.0000000 0.24671053
## 9 Barleria prionitis 2.1857923 0.0000000 4.68750000
## 10 Capparis fascicularis 0.2732240 0.2628121 0.16447368
## 11 Carissa spinarum 1.3661202 0.6570302 0.00000000
## 12 Cissus rotundifolia 3.8251366 0.9198423 6.49671053
## 13 Combretum hereroense 0.0000000 5.6504599 0.08223684
## 14 Dichrostachys cinerea 0.0000000 0.1314060 0.00000000
## 15 Euclea divinorum 0.2732240 0.2628121 0.00000000
## 16 Euphorbia gossypina 0.0000000 0.1314060 0.00000000
## 17 Flacourtia indica 0.0000000 0.1314060 0.00000000
## 18 Grewia tenax 0.0000000 0.0000000 0.49342105
## 19 Grewia trichocarpa 0.0000000 0.9198423 0.41118421
## 20 Grewia villosa 1.9125683 0.3942181 0.08223684
## 21 Harrisonia abyssinica 0.0000000 2.8909330 0.00000000
## 22 Hypoestes verticillaris 2.1857923 42.7069645 11.92434211
## 23 Indigofera arrecta 0.2732240 0.0000000 0.00000000
## 24 Ipomea kituensis 0.8196721 4.7306176 2.05592105
## 25 Lantana camara 17.7595628 0.0000000 2.71381579
## 26 Lippia javanica 0.5464481 0.0000000 0.00000000
## 27 Maytenus heterophylla 0.0000000 0.1314060 0.65789474
## 28 Ocimum suave 11.2021858 1.8396846 3.53618421
## 29 Ormocarpum trichorcarpum 1.9125683 1.1826544 0.49342105
## 30 Sansevieria ehrenbergii 0.2732240 0.0000000 14.88486842
## 31 Searsia natalensis 1.6393443 0.3942181 0.00000000
## 32 Senna obtusifolia 4.9180328 0.3942181 13.73355263
## 33 Senna occidentalis 0.2732240 3.0223390 21.05263158
## 34 Senna singueana 1.0928962 3.2851511 0.00000000
## 35 Sida cuneifolia 5.1912568 10.7752957 2.13815789
## 36 Solanum incanum 33.3333333 9.8554534 7.15460526
## 37 Tephrosa villosa 1.9125683 0.0000000 0.00000000
## 38 Withania somnifera 0.2732240 0.0000000 0.00000000
## 39 Ximenia americana 0.5464481 0.1314060 0.00000000
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Composition_Shrubs_Wet_Long <- Composition_Shrubs_Wet %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Composition")
print(Composition_Shrubs_Wet_Long)
## # A tibble: 117 × 3
## `Shrub Species` Wards Composition
## <chr> <chr> <dbl>
## 1 Abutilon mauritianum Chepararia 3.55
## 2 Abutilon mauritianum Riwo 7.10
## 3 Abutilon mauritianum Suam 3.29
## 4 Acacia brevispica Chepararia 0.546
## 5 Acacia brevispica Riwo 0
## 6 Acacia brevispica Suam 0.658
## 7 Acalypha fruticosa Chepararia 0.273
## 8 Acalypha fruticosa Riwo 1.97
## 9 Acalypha fruticosa Suam 2.63
## 10 Acalypha neptunica Chepararia 0
## # … with 107 more rows
# Anova analysis assess the impact of land use on Grass species composition during the wet season
Anova_Composition_Shrubs_Wet <- aov (Composition ~ Wards, data = Composition_Shrubs_Wet_Long)
summary (Anova_Composition_Shrubs_Wet)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 0 0.00 0 1
## Residuals 114 4232 37.12
#Percent Tree Species Composition
#Percent Trees composition in Chepararia
sum(Trees_Wet$Chepararia)
## [1] 208
Composition_Trees_Wet_Chep <- (Trees_Wet$Chepararia/208)*100
print(Composition_Trees_Wet_Chep)
## [1] 2.8846154 20.6730769 0.0000000 7.6923077 19.7115385 10.0961538
## [7] 3.8461538 5.7692308 0.0000000 1.9230769 0.9615385 1.4423077
## [13] 0.0000000 0.9615385 0.0000000 0.0000000 2.4038462 3.3653846
## [19] 0.0000000 10.5769231 0.0000000 0.0000000 0.9615385 1.4423077
## [25] 0.0000000 0.4807692 0.0000000 0.0000000 1.4423077 0.0000000
## [31] 0.0000000 0.0000000 0.0000000 0.0000000 0.4807692 1.4423077
## [37] 0.0000000 1.4423077
sum(Composition_Trees_Wet_Chep)
## [1] 100
#Percent Trees composition in Riwo
sum(Trees_Wet$Riwo)
## [1] 294
Composition_Trees_Wet_Riwo <- (Trees_Wet$Riwo/294)*100
print(Composition_Trees_Wet_Riwo)
## [1] 0.0000000 4.0816327 0.0000000 0.6802721 7.8231293 5.1020408
## [7] 0.0000000 0.0000000 0.0000000 15.6462585 0.3401361 13.9455782
## [13] 0.0000000 0.0000000 0.0000000 0.6802721 0.3401361 0.0000000
## [19] 0.0000000 2.0408163 0.6802721 0.3401361 0.0000000 10.8843537
## [25] 3.0612245 0.0000000 0.3401361 1.0204082 0.0000000 0.3401361
## [31] 1.0204082 0.0000000 0.3401361 2.0408163 1.3605442 1.3605442
## [37] 25.8503401 0.6802721
sum(Composition_Trees_Wet_Riwo)
## [1] 100
#Percent Trees composition in Suam
sum(Trees_Wet$Suam, na.rm = TRUE)
## [1] 286
Composition_Trees_Wet_Suam <- (Trees_Wet$Suam/286)*100
print(Composition_Trees_Wet_Suam)
## [1] 0.0000000 0.3496503 16.0839161 1.0489510 39.8601399 10.1398601
## [7] 4.8951049 0.0000000 0.6993007 1.7482517 3.1468531 8.3916084
## [13] 0.6993007 1.0489510 0.3496503 0.0000000 1.0489510 0.0000000
## [19] 1.0489510 0.6993007 1.3986014 0.0000000 0.0000000 1.0489510
## [25] 0.6993007 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## [31] 0.0000000 1.3986014 1.0489510 0.0000000 0.3496503 2.0979021
## [37] 0.6993007 0.0000000
sum(Composition_Trees_Wet_Suam)
## [1] 100
# Create a data frame of the Tree species composition percentages across the three Wards (Land use systems)
Composition_Trees_Wet <- data.frame(Trees_Wet$Species, Composition_Trees_Wet_Chep, Composition_Trees_Wet_Riwo, Composition_Trees_Wet_Suam)
print(Composition_Trees_Wet)
## Trees_Wet.Species Composition_Trees_Wet_Chep
## 1 Acacia drepanolobium 2.8846154
## 2 Acacia gerrardii 20.6730769
## 3 Acacia hockii 0.0000000
## 4 Acacia mellifera 7.6923077
## 5 Acacia nilotica 19.7115385
## 6 Acacia senegal 10.0961538
## 7 Acacia tortilis 3.8461538
## 8 Acokanthera oppositifolia 5.7692308
## 9 Adenium obesum 0.0000000
## 10 Albizia amara 1.9230769
## 11 Albizia anthelmintica 0.9615385
## 12 Balanites aegyptiaca 1.4423077
## 13 Balanites pedicellaris 0.0000000
## 14 Boscia coriacea 0.9615385
## 15 Canthium glaucum 0.0000000
## 16 Combretum molle 0.0000000
## 17 Commiphora africana 2.4038462
## 18 Croton macrostachyus 3.3653846
## 19 Cussonia spicata 0.0000000
## 20 Euphorbia candelabrum 10.5769231
## 21 Faidherbia albida 0.0000000
## 22 Ficus thonningii 0.0000000
## 23 Gravillea robusta 0.9615385
## 24 Grewia bicolor 1.4423077
## 25 Lannea fulva 0.0000000
## 26 Olea africana 0.4807692
## 27 Piliostigma thonningii 0.0000000
## 28 Sclerocarya birrea 0.0000000
## 29 Sesbania sesban 1.4423077
## 30 Synadenium compactum 0.0000000
## 31 Tamarindus indica 0.0000000
## 32 Teclea nobilis 0.0000000
## 33 Terminalia brownii 0.0000000
## 34 Terminalia prunioides 0.0000000
## 35 Vangueria infausta 0.4807692
## 36 Zanthoxylum chalybeum 1.4423077
## 37 Ziziphus abyssinica 0.0000000
## 38 Ziziphus mucronata 1.4423077
## Composition_Trees_Wet_Riwo Composition_Trees_Wet_Suam
## 1 0.0000000 0.0000000
## 2 4.0816327 0.3496503
## 3 0.0000000 16.0839161
## 4 0.6802721 1.0489510
## 5 7.8231293 39.8601399
## 6 5.1020408 10.1398601
## 7 0.0000000 4.8951049
## 8 0.0000000 0.0000000
## 9 0.0000000 0.6993007
## 10 15.6462585 1.7482517
## 11 0.3401361 3.1468531
## 12 13.9455782 8.3916084
## 13 0.0000000 0.6993007
## 14 0.0000000 1.0489510
## 15 0.0000000 0.3496503
## 16 0.6802721 0.0000000
## 17 0.3401361 1.0489510
## 18 0.0000000 0.0000000
## 19 0.0000000 1.0489510
## 20 2.0408163 0.6993007
## 21 0.6802721 1.3986014
## 22 0.3401361 0.0000000
## 23 0.0000000 0.0000000
## 24 10.8843537 1.0489510
## 25 3.0612245 0.6993007
## 26 0.0000000 0.0000000
## 27 0.3401361 0.0000000
## 28 1.0204082 0.0000000
## 29 0.0000000 0.0000000
## 30 0.3401361 0.0000000
## 31 1.0204082 0.0000000
## 32 0.0000000 1.3986014
## 33 0.3401361 1.0489510
## 34 2.0408163 0.0000000
## 35 1.3605442 0.3496503
## 36 1.3605442 2.0979021
## 37 25.8503401 0.6993007
## 38 0.6802721 0.0000000
# Rename the column names for the Composition_Grasses_Wet newly created dataframe
colnames(Composition_Trees_Wet) <- c ("Tree Species", "Chepararia", "Riwo", "Suam")
print(Composition_Trees_Wet)
## Tree Species Chepararia Riwo Suam
## 1 Acacia drepanolobium 2.8846154 0.0000000 0.0000000
## 2 Acacia gerrardii 20.6730769 4.0816327 0.3496503
## 3 Acacia hockii 0.0000000 0.0000000 16.0839161
## 4 Acacia mellifera 7.6923077 0.6802721 1.0489510
## 5 Acacia nilotica 19.7115385 7.8231293 39.8601399
## 6 Acacia senegal 10.0961538 5.1020408 10.1398601
## 7 Acacia tortilis 3.8461538 0.0000000 4.8951049
## 8 Acokanthera oppositifolia 5.7692308 0.0000000 0.0000000
## 9 Adenium obesum 0.0000000 0.0000000 0.6993007
## 10 Albizia amara 1.9230769 15.6462585 1.7482517
## 11 Albizia anthelmintica 0.9615385 0.3401361 3.1468531
## 12 Balanites aegyptiaca 1.4423077 13.9455782 8.3916084
## 13 Balanites pedicellaris 0.0000000 0.0000000 0.6993007
## 14 Boscia coriacea 0.9615385 0.0000000 1.0489510
## 15 Canthium glaucum 0.0000000 0.0000000 0.3496503
## 16 Combretum molle 0.0000000 0.6802721 0.0000000
## 17 Commiphora africana 2.4038462 0.3401361 1.0489510
## 18 Croton macrostachyus 3.3653846 0.0000000 0.0000000
## 19 Cussonia spicata 0.0000000 0.0000000 1.0489510
## 20 Euphorbia candelabrum 10.5769231 2.0408163 0.6993007
## 21 Faidherbia albida 0.0000000 0.6802721 1.3986014
## 22 Ficus thonningii 0.0000000 0.3401361 0.0000000
## 23 Gravillea robusta 0.9615385 0.0000000 0.0000000
## 24 Grewia bicolor 1.4423077 10.8843537 1.0489510
## 25 Lannea fulva 0.0000000 3.0612245 0.6993007
## 26 Olea africana 0.4807692 0.0000000 0.0000000
## 27 Piliostigma thonningii 0.0000000 0.3401361 0.0000000
## 28 Sclerocarya birrea 0.0000000 1.0204082 0.0000000
## 29 Sesbania sesban 1.4423077 0.0000000 0.0000000
## 30 Synadenium compactum 0.0000000 0.3401361 0.0000000
## 31 Tamarindus indica 0.0000000 1.0204082 0.0000000
## 32 Teclea nobilis 0.0000000 0.0000000 1.3986014
## 33 Terminalia brownii 0.0000000 0.3401361 1.0489510
## 34 Terminalia prunioides 0.0000000 2.0408163 0.0000000
## 35 Vangueria infausta 0.4807692 1.3605442 0.3496503
## 36 Zanthoxylum chalybeum 1.4423077 1.3605442 2.0979021
## 37 Ziziphus abyssinica 0.0000000 25.8503401 0.6993007
## 38 Ziziphus mucronata 1.4423077 0.6802721 0.0000000
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Composition_Trees_Wet_Long <- Composition_Trees_Wet %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Composition")
print(Composition_Trees_Wet_Long)
## # A tibble: 114 × 3
## `Tree Species` Wards Composition
## <chr> <chr> <dbl>
## 1 Acacia drepanolobium Chepararia 2.88
## 2 Acacia drepanolobium Riwo 0
## 3 Acacia drepanolobium Suam 0
## 4 Acacia gerrardii Chepararia 20.7
## 5 Acacia gerrardii Riwo 4.08
## 6 Acacia gerrardii Suam 0.350
## 7 Acacia hockii Chepararia 0
## 8 Acacia hockii Riwo 0
## 9 Acacia hockii Suam 16.1
## 10 Acacia mellifera Chepararia 7.69
## # … with 104 more rows
# Anova analysis assess the impact of land use on Grass species composition during the wet season
Anova_Composition_Trees_Wet <- aov (Composition ~ Wards, data = Composition_Trees_Wet_Long)
summary (Anova_Composition_Trees_Wet)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 0 0.00 0 1
## Residuals 111 3822 34.43
#4. WET SEASON GROUND COVER
Point_Wet <- read_excel("WP_Vegetation.xlsx", sheet = 5)
head(Point_Wet)
## # A tibble: 6 × 4
## SPECIES Chepararia Riwo Suam
## <chr> <dbl> <dbl> <dbl>
## 1 Acanthospermum hispidum 1 0 0
## 2 Achyranthes aspera 4 0 0
## 3 Ageratum conyzoides 7 0 2
## 4 Aristida adoensis 15 0 0
## 5 Aristida adscensionis 24 19 0
## 6 Bareground 14 39 60
# Ground Cover percent in Chepararia during the wet season
sum(Point_Wet$Chepararia)
## [1] 238
Ground_Cover_Wet_Chep <- (Point_Wet$Chepararia/238)*100
print(Ground_Cover_Wet_Chep)
## [1] 0.4201681 1.6806723 2.9411765 6.3025210 10.0840336 5.8823529
## [7] 0.4201681 19.3277311 0.0000000 0.0000000 9.2436975 0.4201681
## [13] 2.5210084 0.4201681 12.6050420 2.1008403 5.4621849 1.6806723
## [19] 7.1428571 0.0000000 0.0000000 4.6218487 0.0000000 0.0000000
## [25] 0.0000000 0.4201681 1.6806723 0.0000000 0.0000000 0.8403361
## [31] 0.4201681 1.2605042 0.0000000 0.0000000 0.0000000 0.4201681
## [37] 0.8403361 0.8403361 0.0000000 0.0000000 0.0000000
#Ground Cover percent in Riwo
sum(Point_Wet$Riwo)
## [1] 247
Ground_Cover_Wet_Riwo <- (Point_Wet$Riwo/247)*100
print(Ground_Cover_Wet_Riwo)
## [1] 0.0000000 0.0000000 0.0000000 0.0000000 7.6923077 15.7894737
## [7] 0.0000000 20.2429150 4.0485830 2.0242915 19.8380567 0.0000000
## [13] 0.0000000 0.0000000 1.6194332 0.0000000 9.3117409 0.0000000
## [19] 0.4048583 0.8097166 0.8097166 0.0000000 0.4048583 0.8097166
## [25] 4.0485830 0.0000000 0.0000000 0.0000000 0.0000000 2.0242915
## [31] 0.8097166 0.0000000 0.0000000 2.0242915 6.0728745 0.0000000
## [37] 0.0000000 0.0000000 0.0000000 0.8097166 0.4048583
#Ground Cover percent in Suam
sum(Point_Wet$Suam)
## [1] 228
Ground_Cover_Wet_Suam <- (Point_Wet$Suam/228)*100
print(Ground_Cover_Wet_Suam)
## [1] 0.0000000 0.0000000 0.8771930 0.0000000 0.0000000 26.3157895
## [7] 0.0000000 9.2105263 3.5087719 1.3157895 28.9473684 0.0000000
## [13] 0.0000000 0.0000000 0.8771930 3.9473684 9.6491228 0.0000000
## [19] 0.0000000 0.0000000 3.9473684 0.0000000 0.0000000 2.6315789
## [25] 0.4385965 0.0000000 0.0000000 2.1929825 1.7543860 0.0000000
## [31] 1.3157895 0.0000000 0.4385965 0.4385965 1.7543860 0.0000000
## [37] 0.0000000 0.0000000 0.4385965 0.0000000 0.0000000
# Creating a dataframe of ground cover across the three wards
Ground_Cover_Wet <- data.frame(Point_Wet$SPECIES, Ground_Cover_Wet_Chep, Ground_Cover_Wet_Riwo, Ground_Cover_Wet_Suam)
print(Ground_Cover_Wet)
## Point_Wet.SPECIES Ground_Cover_Wet_Chep Ground_Cover_Wet_Riwo
## 1 Acanthospermum hispidum 0.4201681 0.0000000
## 2 Achyranthes aspera 1.6806723 0.0000000
## 3 Ageratum conyzoides 2.9411765 0.0000000
## 4 Aristida adoensis 6.3025210 0.0000000
## 5 Aristida adscensionis 10.0840336 7.6923077
## 6 Bareground 5.8823529 15.7894737
## 7 Bothriocline somalensis 0.4201681 0.0000000
## 8 Bothriocloa insculpta 19.3277311 20.2429150
## 9 Brachiaria deflexa 0.0000000 4.0485830
## 10 Cenchrus setigerus 0.0000000 2.0242915
## 11 Chloris pycnothrix 9.2436975 19.8380567
## 12 Chloris roxburghiana 0.4201681 0.0000000
## 13 Commelina benghalensis 2.5210084 0.0000000
## 14 Cymbopogon pospischilii 0.4201681 0.0000000
## 15 Cynodon dactylon 12.6050420 1.6194332
## 16 Dactyloctenium aegyptium 2.1008403 0.0000000
## 17 Digitaria velutina 5.4621849 9.3117409
## 18 Echinochloa stagnina 1.6806723 0.0000000
## 19 Eleusine indica 7.1428571 0.4048583
## 20 Eragrostis brownii 0.0000000 0.8097166
## 21 Eragrostis congesta 0.0000000 0.8097166
## 22 Eragrostis superba 4.6218487 0.0000000
## 23 Erlangea cordifolia 0.0000000 0.4048583
## 24 Abutilon maritimum 0.0000000 0.8097166
## 25 Harpachne schimperi 0.0000000 4.0485830
## 26 Heteropogon contortus 0.4201681 0.0000000
## 27 Hyparrhenia lintonii 1.6806723 0.0000000
## 28 Justicia calyculata 0.0000000 0.0000000
## 29 Litter 0.0000000 0.0000000
## 30 Melinis minutiflora 0.8403361 2.0242915
## 31 Melinis repens 0.4201681 0.8097166
## 32 Richardia brasiliensis 1.2605042 0.0000000
## 33 Rock 0.0000000 0.0000000
## 34 Ruellia patula 0.0000000 2.0242915
## 35 Setaria verticillata 0.0000000 6.0728745
## 36 Sonchus asper 0.4201681 0.0000000
## 37 Sporobolus pyramidalis 0.8403361 0.0000000
## 38 Tagetes minuta 0.8403361 0.0000000
## 39 Tridax procumbens 0.0000000 0.0000000
## 40 Trifolium semipilosum 0.0000000 0.8097166
## 41 Zornia reticulata 0.0000000 0.4048583
## Ground_Cover_Wet_Suam
## 1 0.0000000
## 2 0.0000000
## 3 0.8771930
## 4 0.0000000
## 5 0.0000000
## 6 26.3157895
## 7 0.0000000
## 8 9.2105263
## 9 3.5087719
## 10 1.3157895
## 11 28.9473684
## 12 0.0000000
## 13 0.0000000
## 14 0.0000000
## 15 0.8771930
## 16 3.9473684
## 17 9.6491228
## 18 0.0000000
## 19 0.0000000
## 20 0.0000000
## 21 3.9473684
## 22 0.0000000
## 23 0.0000000
## 24 2.6315789
## 25 0.4385965
## 26 0.0000000
## 27 0.0000000
## 28 2.1929825
## 29 1.7543860
## 30 0.0000000
## 31 1.3157895
## 32 0.0000000
## 33 0.4385965
## 34 0.4385965
## 35 1.7543860
## 36 0.0000000
## 37 0.0000000
## 38 0.0000000
## 39 0.4385965
## 40 0.0000000
## 41 0.0000000
# Renaming the column names of the dataframe
colnames(Ground_Cover_Wet) <- c ("Species", "Chepararia", "Riwo", "Suam")
print(Ground_Cover_Wet)
## Species Chepararia Riwo Suam
## 1 Acanthospermum hispidum 0.4201681 0.0000000 0.0000000
## 2 Achyranthes aspera 1.6806723 0.0000000 0.0000000
## 3 Ageratum conyzoides 2.9411765 0.0000000 0.8771930
## 4 Aristida adoensis 6.3025210 0.0000000 0.0000000
## 5 Aristida adscensionis 10.0840336 7.6923077 0.0000000
## 6 Bareground 5.8823529 15.7894737 26.3157895
## 7 Bothriocline somalensis 0.4201681 0.0000000 0.0000000
## 8 Bothriocloa insculpta 19.3277311 20.2429150 9.2105263
## 9 Brachiaria deflexa 0.0000000 4.0485830 3.5087719
## 10 Cenchrus setigerus 0.0000000 2.0242915 1.3157895
## 11 Chloris pycnothrix 9.2436975 19.8380567 28.9473684
## 12 Chloris roxburghiana 0.4201681 0.0000000 0.0000000
## 13 Commelina benghalensis 2.5210084 0.0000000 0.0000000
## 14 Cymbopogon pospischilii 0.4201681 0.0000000 0.0000000
## 15 Cynodon dactylon 12.6050420 1.6194332 0.8771930
## 16 Dactyloctenium aegyptium 2.1008403 0.0000000 3.9473684
## 17 Digitaria velutina 5.4621849 9.3117409 9.6491228
## 18 Echinochloa stagnina 1.6806723 0.0000000 0.0000000
## 19 Eleusine indica 7.1428571 0.4048583 0.0000000
## 20 Eragrostis brownii 0.0000000 0.8097166 0.0000000
## 21 Eragrostis congesta 0.0000000 0.8097166 3.9473684
## 22 Eragrostis superba 4.6218487 0.0000000 0.0000000
## 23 Erlangea cordifolia 0.0000000 0.4048583 0.0000000
## 24 Abutilon maritimum 0.0000000 0.8097166 2.6315789
## 25 Harpachne schimperi 0.0000000 4.0485830 0.4385965
## 26 Heteropogon contortus 0.4201681 0.0000000 0.0000000
## 27 Hyparrhenia lintonii 1.6806723 0.0000000 0.0000000
## 28 Justicia calyculata 0.0000000 0.0000000 2.1929825
## 29 Litter 0.0000000 0.0000000 1.7543860
## 30 Melinis minutiflora 0.8403361 2.0242915 0.0000000
## 31 Melinis repens 0.4201681 0.8097166 1.3157895
## 32 Richardia brasiliensis 1.2605042 0.0000000 0.0000000
## 33 Rock 0.0000000 0.0000000 0.4385965
## 34 Ruellia patula 0.0000000 2.0242915 0.4385965
## 35 Setaria verticillata 0.0000000 6.0728745 1.7543860
## 36 Sonchus asper 0.4201681 0.0000000 0.0000000
## 37 Sporobolus pyramidalis 0.8403361 0.0000000 0.0000000
## 38 Tagetes minuta 0.8403361 0.0000000 0.0000000
## 39 Tridax procumbens 0.0000000 0.0000000 0.4385965
## 40 Trifolium semipilosum 0.0000000 0.8097166 0.0000000
## 41 Zornia reticulata 0.0000000 0.4048583 0.0000000
View(Ground_Cover_Wet)
write_excel_csv(Ground_Cover_Wet, file = "Ground_Cover_Wet")
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Ground_Cover_Wet_Long <- Ground_Cover_Wet %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Cover")
print(Ground_Cover_Wet_Long)
## # A tibble: 123 × 3
## Species Wards Cover
## <chr> <chr> <dbl>
## 1 Acanthospermum hispidum Chepararia 0.420
## 2 Acanthospermum hispidum Riwo 0
## 3 Acanthospermum hispidum Suam 0
## 4 Achyranthes aspera Chepararia 1.68
## 5 Achyranthes aspera Riwo 0
## 6 Achyranthes aspera Suam 0
## 7 Ageratum conyzoides Chepararia 2.94
## 8 Ageratum conyzoides Riwo 0
## 9 Ageratum conyzoides Suam 0.877
## 10 Aristida adoensis Chepararia 6.30
## # … with 113 more rows
# Anova analysis assess the impact of land use on Grass species composition during the wet season
Anova_Ground_Cover_Wet <- aov (Cover ~ Wards, data = Ground_Cover_Wet_Long)
summary (Anova_Ground_Cover_Wet)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 0 0.00 0 1
## Residuals 120 3260 27.16
#5. CANOPY COVER
# Canopy Cover - a 10m long tape was being used to sample, on 3 points, in 4 campus directions per sampling point. #10*3*4*2 - for 2 sampling locations = 240m.
# The total length of the sampling tape per land use study area is 240m.
# Import the Canopy_Wet data set
Canopy_Wet <- read_xlsx("WP_Vegetation.xlsx", sheet = 7)
# Sub-setting the canopy cover of shrubs from the Canopy_Wet dataset
Canopy_Shrubs_Wet <- subset(Canopy_Wet, Lifeform == "Shrub",)
View (Canopy_Shrubs_Wet)
# Canopy cover of shrub species in Chepararia
sum(Canopy_Shrubs_Wet$Chepareria)
## Warning: Unknown or uninitialised column: `Chepareria`.
## [1] 0
# Total shrub canopy cover in Chepararia = ~29.4%
Canopy_Shrubs_Chep_Wet <- (Canopy_Shrubs_Wet$Chepararia/29.4)*100
print(Canopy_Shrubs_Chep_Wet)
## [1] 0.000000 0.000000 0.000000 3.401361 0.000000 0.000000 0.000000
## [8] 0.000000 0.000000 0.000000 1.020408 0.000000 10.204082 9.863946
## [15] 0.000000 0.000000 14.965986 10.884354 0.000000 0.000000 3.401361
## [22] 3.401361 2.040816 34.013605 0.000000 6.802721
#Canopy cover of Shrub species in Riwo
sum(Canopy_Shrubs_Wet$Riwo)
## [1] 61.9
#Total shrub canopy cover in Riwo = ~61.9%
Canopy_Shrubs_Riwo_Wet <- (Canopy_Shrubs_Wet$Riwo/61.9)*100
print(Canopy_Shrubs_Riwo_Wet)
## [1] 0.4846527 1.1308562 0.0000000 0.0000000 0.6462036 0.0000000
## [7] 23.2633279 0.0000000 0.0000000 0.0000000 0.0000000 0.8077544
## [13] 38.7722132 0.0000000 5.1696284 1.1308562 0.6462036 0.0000000
## [19] 0.0000000 17.7705977 0.3231018 2.2617124 1.9386107 5.0080775
## [25] 0.6462036 0.0000000
#Canopy cover of Shrub species in Suam
sum(Canopy_Shrubs_Wet$Suam)
## [1] 53.1
#Total shrub canopy cover in Suam = ~53.1%
Canopy_Shrubs_Suam_Wet <- (Canopy_Shrubs_Wet$Suam/53.1)
print(Canopy_Shrubs_Suam_Wet)
## [1] 0.003766478 0.000000000 0.016949153 0.052730697 0.000000000 0.047080979
## [7] 0.000000000 0.009416196 0.005649718 0.152542373 0.000000000 0.000000000
## [13] 0.250470810 0.000000000 0.109227872 0.000000000 0.101694915 0.041431262
## [19] 0.071563089 0.000000000 0.062146893 0.000000000 0.015065913 0.060263653
## [25] 0.000000000 0.000000000
# Creating a dataframe of Canopy cover percetages across the three wards
Canopy_Shrubs_Wet <- data.frame(Canopy_Shrubs_Wet$Species, Canopy_Shrubs_Chep_Wet, Canopy_Shrubs_Riwo_Wet, Canopy_Shrubs_Suam_Wet)
print(Canopy_Shrubs_Wet)
## Canopy_Shrubs_Wet.Species Canopy_Shrubs_Chep_Wet Canopy_Shrubs_Riwo_Wet
## 1 Acalypha fruticosa 0.000000 0.4846527
## 2 Acalypha neptunica 0.000000 1.1308562
## 3 Acanthospermum hispidum 0.000000 0.0000000
## 4 Barleria prionitis 3.401361 0.0000000
## 5 Blepharis integrifolia 0.000000 0.6462036
## 6 Cissus rotundifolia 0.000000 0.0000000
## 7 Combretum hereroense 0.000000 23.2633279
## 8 Cussonia spicata 0.000000 0.0000000
## 9 Grewia tenax 0.000000 0.0000000
## 10 Grewia trichocarpa 0.000000 0.0000000
## 11 Grewia villosa 1.020408 0.0000000
## 12 Harrisonia abyssinica 0.000000 0.8077544
## 13 Hypoestes verticillaris 10.204082 38.7722132
## 14 Indigofera arrecta 9.863946 0.0000000
## 15 Ipomea kituensis 0.000000 5.1696284
## 16 Justicia declipteroides 0.000000 1.1308562
## 17 Lantana camara 14.965986 0.6462036
## 18 Leonotis mollisma 10.884354 0.0000000
## 19 Sansevieria ehrenbergii 0.000000 0.0000000
## 20 Searsia natalensis 0.000000 17.7705977
## 21 Senna obtusifolia 3.401361 0.3231018
## 22 Senna occidentalis 3.401361 2.2617124
## 23 Sida cuneifolia 2.040816 1.9386107
## 24 Solanum incanum 34.013605 5.0080775
## 25 Terminalia prunoides 0.000000 0.6462036
## 26 Tephrosa villosa 6.802721 0.0000000
## Canopy_Shrubs_Suam_Wet
## 1 0.003766478
## 2 0.000000000
## 3 0.016949153
## 4 0.052730697
## 5 0.000000000
## 6 0.047080979
## 7 0.000000000
## 8 0.009416196
## 9 0.005649718
## 10 0.152542373
## 11 0.000000000
## 12 0.000000000
## 13 0.250470810
## 14 0.000000000
## 15 0.109227872
## 16 0.000000000
## 17 0.101694915
## 18 0.041431262
## 19 0.071563089
## 20 0.000000000
## 21 0.062146893
## 22 0.000000000
## 23 0.015065913
## 24 0.060263653
## 25 0.000000000
## 26 0.000000000
# Renaming the column names of the dataframe
colnames(Canopy_Shrubs_Wet) <- c ("Shrub Species", "Chepararia", "Riwo", "Suam")
print(Canopy_Shrubs_Wet)
## Shrub Species Chepararia Riwo Suam
## 1 Acalypha fruticosa 0.000000 0.4846527 0.003766478
## 2 Acalypha neptunica 0.000000 1.1308562 0.000000000
## 3 Acanthospermum hispidum 0.000000 0.0000000 0.016949153
## 4 Barleria prionitis 3.401361 0.0000000 0.052730697
## 5 Blepharis integrifolia 0.000000 0.6462036 0.000000000
## 6 Cissus rotundifolia 0.000000 0.0000000 0.047080979
## 7 Combretum hereroense 0.000000 23.2633279 0.000000000
## 8 Cussonia spicata 0.000000 0.0000000 0.009416196
## 9 Grewia tenax 0.000000 0.0000000 0.005649718
## 10 Grewia trichocarpa 0.000000 0.0000000 0.152542373
## 11 Grewia villosa 1.020408 0.0000000 0.000000000
## 12 Harrisonia abyssinica 0.000000 0.8077544 0.000000000
## 13 Hypoestes verticillaris 10.204082 38.7722132 0.250470810
## 14 Indigofera arrecta 9.863946 0.0000000 0.000000000
## 15 Ipomea kituensis 0.000000 5.1696284 0.109227872
## 16 Justicia declipteroides 0.000000 1.1308562 0.000000000
## 17 Lantana camara 14.965986 0.6462036 0.101694915
## 18 Leonotis mollisma 10.884354 0.0000000 0.041431262
## 19 Sansevieria ehrenbergii 0.000000 0.0000000 0.071563089
## 20 Searsia natalensis 0.000000 17.7705977 0.000000000
## 21 Senna obtusifolia 3.401361 0.3231018 0.062146893
## 22 Senna occidentalis 3.401361 2.2617124 0.000000000
## 23 Sida cuneifolia 2.040816 1.9386107 0.015065913
## 24 Solanum incanum 34.013605 5.0080775 0.060263653
## 25 Terminalia prunoides 0.000000 0.6462036 0.000000000
## 26 Tephrosa villosa 6.802721 0.0000000 0.000000000
view(Canopy_Shrubs_Wet)
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Canopy_Shrubs_Wet_Long <- Canopy_Shrubs_Wet %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Canopy")
print(Canopy_Shrubs_Wet_Long)
## # A tibble: 78 × 3
## `Shrub Species` Wards Canopy
## <chr> <chr> <dbl>
## 1 Acalypha fruticosa Chepararia 0
## 2 Acalypha fruticosa Riwo 0.485
## 3 Acalypha fruticosa Suam 0.00377
## 4 Acalypha neptunica Chepararia 0
## 5 Acalypha neptunica Riwo 1.13
## 6 Acalypha neptunica Suam 0
## 7 Acanthospermum hispidum Chepararia 0
## 8 Acanthospermum hispidum Riwo 0
## 9 Acanthospermum hispidum Suam 0.0169
## 10 Barleria prionitis Chepararia 3.40
## # … with 68 more rows
# Anova analysis assess the impact of land use on Grass species composition during the wet season
Anova_Canopy_Shrubs_Wet <- aov (Canopy ~ Wards, data = Canopy_Shrubs_Wet_Long)
summary (Anova_Canopy_Shrubs_Wet)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 251 125.65 2.737 0.0713 .
## Residuals 75 3444 45.91
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Canopy_Trees_Wet <- subset(Canopy_Wet, Lifeform == "Tree")
view(Canopy_Trees_Wet)
#Canopy cover by tree species in Chepararia
sum(Canopy_Trees_Wet$Chepararia)
## [1] 167.5
#Total tree canopy cover in Chepararia = ~167.5%
Canopy_Trees_Chep_Wet <- (Canopy_Trees_Wet$Chepararia/167.5)*100
print(Canopy_Trees_Chep_Wet)
## [1] 2.029851 16.716418 0.000000 4.059701 0.000000 8.656716 10.865672
## [8] 7.880597 12.537313 0.000000 20.179104 10.746269 5.970149 0.000000
## [15] 0.358209 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
## [22] 0.000000 0.000000 0.000000
#Canopy cover by tree species in Riwo
sum(Canopy_Trees_Wet$Riwo)
## [1] 195.6
#Total tree canopy cover in Riwo = ~195.6%
Canopy_Trees_Riwo_Wet <- (Canopy_Trees_Wet$Riwo/195.6)*100
print(Canopy_Trees_Riwo_Wet)
## [1] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 30.6748466
## [7] 0.5112474 0.0000000 20.0920245 0.0000000 26.0224949 0.0000000
## [13] 0.0000000 0.0000000 0.0000000 3.5787321 0.0000000 6.1349693
## [19] 6.1349693 0.0000000 0.0000000 3.3742331 0.0000000 3.4764826
#Canopy cover by tree species in Suam
sum(Canopy_Trees_Wet$Suam)
## [1] 111.8
#Total tree canopy cover in Suam = ~111.8%
Canopy_Trees_Suam_Wet <- (Canopy_Trees_Wet$Suam/111.8)*100
print(Canopy_Trees_Suam_Wet)
## [1] 0.0000000 0.0000000 7.0661896 0.0000000 4.1144902 15.1162791
## [7] 0.0000000 0.0000000 8.9445438 8.9445438 13.4168157 7.4239714
## [13] 0.0000000 2.1466905 0.0000000 0.0000000 0.7155635 0.0000000
## [19] 0.0000000 13.1484794 8.9445438 0.0000000 10.0178891 0.0000000
# Creating a data frame of tree Canopy cover percentages across the three wards
Canopy_Trees_Wet <- data.frame(Canopy_Trees_Wet$Species, Canopy_Trees_Chep_Wet, Canopy_Trees_Riwo_Wet, Canopy_Trees_Suam_Wet)
print(Canopy_Trees_Wet)
## Canopy_Trees_Wet.Species Canopy_Trees_Chep_Wet Canopy_Trees_Riwo_Wet
## 1 Acacia drepanolobium 2.029851 0.0000000
## 2 Acacia gerrardii 16.716418 0.0000000
## 3 Acacia hockii 0.000000 0.0000000
## 4 Acacia lahai 4.059701 0.0000000
## 5 Acacia mellifera 0.000000 0.0000000
## 6 Acacia nilotica 8.656716 30.6748466
## 7 Acacia senegal 10.865672 0.5112474
## 8 Acacia tortilis 7.880597 0.0000000
## 9 Albizia amara 12.537313 20.0920245
## 10 Albizia anthelmintica 0.000000 0.0000000
## 11 Balanites aegyptiaca 20.179104 26.0224949
## 12 Boscia coriacea 10.746269 0.0000000
## 13 Croton macrostachyus 5.970149 0.0000000
## 14 Euphorbia candelabrum 0.000000 0.0000000
## 15 Gravillea robusta 0.358209 0.0000000
## 16 Lannea fulva 0.000000 3.5787321
## 17 Ormocarpum trichorcarpum 0.000000 0.0000000
## 18 Sclerocarya birrea 0.000000 6.1349693
## 19 Tamarindus indica 0.000000 6.1349693
## 20 Teclea nobilis 0.000000 0.0000000
## 21 Terminalia brownii 0.000000 0.0000000
## 22 Vangueria infausta 0.000000 3.3742331
## 23 Zanthoxylum chalybeum 0.000000 0.0000000
## 24 Ziziphus abyssinica 0.000000 3.4764826
## Canopy_Trees_Suam_Wet
## 1 0.0000000
## 2 0.0000000
## 3 7.0661896
## 4 0.0000000
## 5 4.1144902
## 6 15.1162791
## 7 0.0000000
## 8 0.0000000
## 9 8.9445438
## 10 8.9445438
## 11 13.4168157
## 12 7.4239714
## 13 0.0000000
## 14 2.1466905
## 15 0.0000000
## 16 0.0000000
## 17 0.7155635
## 18 0.0000000
## 19 0.0000000
## 20 13.1484794
## 21 8.9445438
## 22 0.0000000
## 23 10.0178891
## 24 0.0000000
# Renaming the column names of the dataframe
colnames(Canopy_Trees_Wet) <- c ("Tree Species", "Chepararia", "Riwo", "Suam")
print(Canopy_Trees_Wet)
## Tree Species Chepararia Riwo Suam
## 1 Acacia drepanolobium 2.029851 0.0000000 0.0000000
## 2 Acacia gerrardii 16.716418 0.0000000 0.0000000
## 3 Acacia hockii 0.000000 0.0000000 7.0661896
## 4 Acacia lahai 4.059701 0.0000000 0.0000000
## 5 Acacia mellifera 0.000000 0.0000000 4.1144902
## 6 Acacia nilotica 8.656716 30.6748466 15.1162791
## 7 Acacia senegal 10.865672 0.5112474 0.0000000
## 8 Acacia tortilis 7.880597 0.0000000 0.0000000
## 9 Albizia amara 12.537313 20.0920245 8.9445438
## 10 Albizia anthelmintica 0.000000 0.0000000 8.9445438
## 11 Balanites aegyptiaca 20.179104 26.0224949 13.4168157
## 12 Boscia coriacea 10.746269 0.0000000 7.4239714
## 13 Croton macrostachyus 5.970149 0.0000000 0.0000000
## 14 Euphorbia candelabrum 0.000000 0.0000000 2.1466905
## 15 Gravillea robusta 0.358209 0.0000000 0.0000000
## 16 Lannea fulva 0.000000 3.5787321 0.0000000
## 17 Ormocarpum trichorcarpum 0.000000 0.0000000 0.7155635
## 18 Sclerocarya birrea 0.000000 6.1349693 0.0000000
## 19 Tamarindus indica 0.000000 6.1349693 0.0000000
## 20 Teclea nobilis 0.000000 0.0000000 13.1484794
## 21 Terminalia brownii 0.000000 0.0000000 8.9445438
## 22 Vangueria infausta 0.000000 3.3742331 0.0000000
## 23 Zanthoxylum chalybeum 0.000000 0.0000000 10.0178891
## 24 Ziziphus abyssinica 0.000000 3.4764826 0.0000000
view(Canopy_Trees_Wet)
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Canopy_Trees_Wet_Long <- Canopy_Trees_Wet %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Canopy")
print(Canopy_Trees_Wet_Long)
## # A tibble: 72 × 3
## `Tree Species` Wards Canopy
## <chr> <chr> <dbl>
## 1 Acacia drepanolobium Chepararia 2.03
## 2 Acacia drepanolobium Riwo 0
## 3 Acacia drepanolobium Suam 0
## 4 Acacia gerrardii Chepararia 16.7
## 5 Acacia gerrardii Riwo 0
## 6 Acacia gerrardii Suam 0
## 7 Acacia hockii Chepararia 0
## 8 Acacia hockii Riwo 0
## 9 Acacia hockii Suam 7.07
## 10 Acacia lahai Chepararia 4.06
## # … with 62 more rows
# Anova analysis assess the impact of land use on tree canopy cover during the wet season
Anova_Canopy_Trees_Wet <- aov (Canopy ~ Wards, data = Canopy_Trees_Wet_Long)
summary (Anova_Canopy_Trees_Wet)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 0 0.00 0 1
## Residuals 69 3203 46.42
#6. BIOMASS PRODUCTION
#Import the biomass dataset
Biomass_Wet <- read_xlsx("WP_Vegetation.xlsx", sheet = 9)
print(Biomass_Wet)
## # A tibble: 4 × 4
## Lifeform Chepararia Riwo Suam
## <chr> <dbl> <dbl> <dbl>
## 1 Grasses( Dry weight) 1330 750 920
## 2 Forbs(Dry weight) 245 395 230
## 3 Total Biomass(g) 1575 1145 1150
## 4 Area of the Quadrat (0.5m*0.5m) 0.25 NA NA
#Samples were collected in 2 sampling points in each of the wards. To get an average of the biomass sample weight per ward, the sample weights are divided by 2.
Biomass_Wet <- Biomass_Wet %>%
slice(1:3)
print(Biomass_Wet)
## # A tibble: 3 × 4
## Lifeform Chepararia Riwo Suam
## <chr> <dbl> <dbl> <dbl>
## 1 Grasses( Dry weight) 1330 750 920
## 2 Forbs(Dry weight) 245 395 230
## 3 Total Biomass(g) 1575 1145 1150
Biomass_Wet_Chep <- (Biomass_Wet$Chepararia/2)
print(Biomass_Wet_Chep)
## [1] 665.0 122.5 787.5
Biomass_Wet_Riwo <- (Biomass_Wet$Riwo/2)
print(Biomass_Wet_Riwo)
## [1] 375.0 197.5 572.5
Biomass_Wet_Suam <- (Biomass_Wet$Suam/2)
print(Biomass_Wet_Suam)
## [1] 460 115 575
Biomass_Prod_Wet <- data.frame (Biomass_Wet$Lifeform, Biomass_Wet_Chep, Biomass_Wet_Riwo, Biomass_Wet_Suam)
print(Biomass_Prod_Wet)
## Biomass_Wet.Lifeform Biomass_Wet_Chep Biomass_Wet_Riwo Biomass_Wet_Suam
## 1 Grasses( Dry weight) 665.0 375.0 460
## 2 Forbs(Dry weight) 122.5 197.5 115
## 3 Total Biomass(g) 787.5 572.5 575
#To then approximate biomass production in tonnes per hectare, the sample weights will be divided by the area of the quadrat (0.25) then multiplied by 10,000m2 to convert to hectares, then divided by 1,000,000 to convert to tonnes - giving weight in tonnes/ha
Biomass_Wet_Chep <- ((Biomass_Prod_Wet$Biomass_Wet_Chep /0.25 *10000)/1000000)
print(Biomass_Wet_Chep)
## [1] 26.6 4.9 31.5
Biomass_Wet_Riwo <- ((Biomass_Prod_Wet$Biomass_Wet_Riwo/0.25*10000)/1000000)
print(Biomass_Wet_Riwo)
## [1] 15.0 7.9 22.9
Biomass_Wet_Suam <- ((Biomass_Prod_Wet$Biomass_Wet_Suam/0.25*10000)/1000000)
print(Biomass_Wet_Suam)
## [1] 18.4 4.6 23.0
# Creating a data frame of tree Canopy cover percentages across the three wards
Biomass_Wet_WP <- data.frame(
Lifeform <- c("Grasses", "Forbs", "Total Biomass"), Biomass_Wet_Chep, Biomass_Wet_Riwo, Biomass_Wet_Suam)
print(Biomass_Wet_WP)
## Lifeform....c..Grasses....Forbs....Total.Biomass.. Biomass_Wet_Chep
## 1 Grasses 26.6
## 2 Forbs 4.9
## 3 Total Biomass 31.5
## Biomass_Wet_Riwo Biomass_Wet_Suam
## 1 15.0 18.4
## 2 7.9 4.6
## 3 22.9 23.0
# Renaming the column names of the dataframe
colnames(Biomass_Wet_WP) <- c ("Lifeform", "Chepararia", "Riwo", "Suam")
print(Biomass_Wet_WP)
## Lifeform Chepararia Riwo Suam
## 1 Grasses 26.6 15.0 18.4
## 2 Forbs 4.9 7.9 4.6
## 3 Total Biomass 31.5 22.9 23.0
View(Biomass_Wet_WP)
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Biomass_Wet_WP_Long <- Biomass_Prod_Wet %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Biomass")
print(Biomass_Wet_WP_Long)
## # A tibble: 9 × 3
## Biomass_Wet.Lifeform Wards Biomass
## <chr> <chr> <dbl>
## 1 Grasses( Dry weight) Biomass_Wet_Chep 665
## 2 Grasses( Dry weight) Biomass_Wet_Riwo 375
## 3 Grasses( Dry weight) Biomass_Wet_Suam 460
## 4 Forbs(Dry weight) Biomass_Wet_Chep 122.
## 5 Forbs(Dry weight) Biomass_Wet_Riwo 198.
## 6 Forbs(Dry weight) Biomass_Wet_Suam 115
## 7 Total Biomass(g) Biomass_Wet_Chep 788.
## 8 Total Biomass(g) Biomass_Wet_Riwo 572.
## 9 Total Biomass(g) Biomass_Wet_Suam 575
# Anova analysis assess the impact of land use on tree canopy cover during the wet season
Anova_Biomass_Wet_WP <- aov (Biomass ~ Wards, data = Biomass_Wet_WP_Long)
summary (Anova_Biomass_Wet_WP)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 40617 20308 0.28 0.765
## Residuals 6 435508 72585
#7. FREQUENCY
Frequency_Wet <- read_xlsx("WP_Vegetation.xlsx", sheet = 1)
view(Frequency_Wet)
# The dataset contains grass, forb, shrub, and tree species identified in 24 quadrats laid within sampling points across different 3 wards of West Pokot County.
# Presence of a species within a quadrat is denoted by the species count.
# The total number of individual species in a ward is calculated and recorded as "Total number of individuals", as well as the total count of quadrats containing the species, represented as "Quadrat Count".
# Frequency percentage = (Quadrat Count/Total number of quadrats (24)) * 100
Species_Frequency_Wet <- Frequency_Wet %>%
mutate (Frequency_Wet, (Frequency_Wet$`Quadrat Count`/24)*100)
view(Species_Frequency_Wet)
Species_Frequency_Wet <- Species_Frequency_Wet %>%
rename_at(30, ~ "Frequency")
view(Species_Frequency_Wet)
# Sub-setting the frequency data for grasses from the Species_Frequency dataset
Frequency_Grasses_Wet <- subset(Species_Frequency_Wet, Lifeform == "Grass")
view(Frequency_Grasses_Wet)
# Anova analysis assess the impact of land use on Grasses frequency during the wet season
Anova_Frequency_Grasses_Wet <- aov (Frequency ~ Ward, data = Frequency_Grasses_Wet)
summary(Anova_Frequency_Grasses_Wet)
## Df Sum Sq Mean Sq F value Pr(>F)
## Ward 2 46 23.18 0.083 0.921
## Residuals 37 10349 279.70
# Sub-setting the frequency data for forbs from the Species_Frequency dataset
Frequency_Forbs_Wet <- subset(Species_Frequency_Wet, Lifeform == "Forb")
view(Frequency_Forbs_Wet)
# Anova analysis assess the impact of land use on Forbs frequency during the wet season
Anova_Frequency_Forbs_Wet <- aov (Frequency ~ Ward, data = Frequency_Forbs_Wet)
summary(Anova_Frequency_Forbs_Wet)
## Df Sum Sq Mean Sq F value Pr(>F)
## Ward 2 167.9 83.97 1.424 0.256
## Residuals 32 1887.6 58.99
# Sub-setting the frequency data for Shrubs from the Species_Frequency dataset
Frequency_Shrubs_Wet <- subset(Species_Frequency_Wet, Lifeform == "Shrub")
view(Frequency_Shrubs_Wet)
# Anova analysis assess the impact of land use on Shrubs frequency during the wet season
Anova_Frequency_Shrubs_Wet <- aov (Frequency ~ Ward, data = Frequency_Shrubs_Wet)
summary(Anova_Frequency_Shrubs_Wet)
## Df Sum Sq Mean Sq F value Pr(>F)
## Ward 2 1927 963.7 6.078 0.00336 **
## Residuals 89 14112 158.6
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Sub-setting the frequency data for Trees from the Species_Frequency dataset
Frequency_Trees_Wet <- subset(Species_Frequency_Wet, Lifeform == "Tree")
view(Frequency_Trees_Wet)
# Anova analysis assess the impact of land use on trees frequency during the wet season
Anova_Frequency_Trees_Wet <- aov (Frequency ~ Ward, data = Frequency_Trees_Wet)
summary(Anova_Frequency_Trees_Wet)
## Df Sum Sq Mean Sq F value Pr(>F)
## Ward 2 75 37.36 0.152 0.859
## Residuals 70 17179 245.42
# B. DRY SEASON
# 1. Frequency
Frequency_Dry <- read_xlsx("WP_Vegetation.xlsx", sheet = 2)
View(Frequency_Dry)
Species_Frequency_Dry <- Frequency_Dry %>%
mutate(Frequency_Dry, (Frequency_Dry$`Quadrat Count`/24 *100))
view(Species_Frequency_Dry)
Species_Frequency_Dry <- Species_Frequency_Dry %>%
rename_at(30, ~ "Frequency")
view(Species_Frequency_Dry)
# Sub-setting the frequency data for grasses from the Species_Frequency_Dry dataset
Frequency_Grasses_Dry <- subset(Species_Frequency_Dry, Lifeform == "Grass")
view(Frequency_Grasses_Dry)
# Anova analysis assess the impact of land use on Grasses frequency during the wet season
Anova_Frequency_Grasses_Dry <- aov (Frequency ~ Ward, data = Frequency_Grasses_Dry)
summary(Anova_Frequency_Grasses_Dry)
## Df Sum Sq Mean Sq F value Pr(>F)
## Ward 2 196 97.96 0.434 0.653
## Residuals 23 5197 225.97
# Sub-setting the frequency data for forbs from the Species_Frequency_Dry dataset
Frequency_Forbs_Dry <- subset(Species_Frequency_Dry, Lifeform == "Forb")
view(Frequency_Forbs_Dry)
# Anova analysis assess the impact of land use on Forbs frequency during the wet season
Anova_Frequency_Forbs_Dry <- aov (Frequency ~ Ward, data = Frequency_Forbs_Dry)
summary(Anova_Frequency_Forbs_Dry)
## Df Sum Sq Mean Sq F value Pr(>F)
## Ward 2 21.1 10.55 0.773 0.482
## Residuals 13 177.5 13.65
# Sub-setting the frequency data for Shrubs from the Species_Frequency_Dry dataset
Frequency_Shrubs_Dry <- subset(Species_Frequency_Dry, Lifeform == "Shrub")
view(Frequency_Shrubs_Dry)
# Anova analysis assess the impact of land use on Shrubs frequency during the wet season
Anova_Frequency_Shrubs_Dry <- aov (Frequency ~ Ward, data = Frequency_Shrubs_Dry)
summary(Anova_Frequency_Shrubs_Dry)
## Df Sum Sq Mean Sq F value Pr(>F)
## Ward 2 176 88.16 0.706 0.497
## Residuals 75 9369 124.92
# Sub-setting the frequency data for Trees from the Species_Frequency_Dry dataset
Frequency_Trees_Dry <- subset(Species_Frequency_Dry, Lifeform == "Tree")
view(Frequency_Trees_Dry)
# Anova analysis assess the impact of land use on trees frequency during the wet season
Anova_Frequency_Trees_Dry <- aov (Frequency ~ Ward, data = Frequency_Trees_Dry)
summary(Anova_Frequency_Trees_Dry)
## Df Sum Sq Mean Sq F value Pr(>F)
## Ward 2 7 3.63 0.014 0.986
## Residuals 65 16918 260.27
# 2. SPECIES DIVERSITY
# Calculating the dry season species diversity index using the Shannon-Weiner index in the 'vegan' package.
library(readxl)
library(vegan)
Quadrat_Dry <- read_xlsx("WP_Vegetation.xlsx", sheet = 4)
View(Quadrat_Dry)
Grasses_Dry <- Quadrat_Dry [Quadrat_Dry$Lifeform == "Grass",]
view(Grasses_Dry)
# Diversity index of grasses in Chepararia, Riwo and Suam during the wet season
# Calculating the diversity index of Grasses in Chepararia
Grass_Diversity_Dry_Chep <- diversity (Grasses_Dry$Chepararia, index = "shannon")
print(Grass_Diversity_Dry_Chep)
## [1] 1.629261
# Calculating the diversity index of Grasses in Riwo
Grass_Diversity_Dry_Riwo <- diversity(Grasses_Dry$Riwo, index = "shannon")
print(Grass_Diversity_Dry_Riwo)
## [1] 1.479434
# Calculating the diversity index of Grasses in Suam
Grass_Diversity_Dry_Suam <- diversity(Grasses_Dry$Suam, index = "shannon")
print(Grass_Diversity_Dry_Suam)
## [1] 1.235784
# Diversity index of Forbs in Chepareria, Riwo and Suam during the wet season
Forbs_Dry <- Quadrat_Dry %>%
filter(Lifeform == "Forb") %>%
select(-Habit)
view(Forbs_Dry)
# Calculating the diversity index of Forbs in Chepararia
Forb_Diversity_Dry_Chep <- diversity(Forbs_Dry$Chepararia, index = "shannon")
print(Forb_Diversity_Dry_Chep)
## [1] 1.406851
# Calculating the diversity index of Forbs in Riwo
Forb_Diversity_Dry_Riwo <- diversity(Forbs_Dry$Riwo, index = "shannon")
print(Forb_Diversity_Dry_Riwo)
## [1] 0.840778
# Calculating the diversity index of Forbs in Suam
Forb_Diversity_Dry_Suam <- diversity(Forbs_Dry$Suam, index = "shannon")
print(Forb_Diversity_Dry_Suam)
## [1] 1.427361
# Diversity index of Shrubs in Chepareria, Riwo and Suam during the wet season
Shrubs_Dry <- Quadrat_Dry %>%
filter(Lifeform == "Shrub") %>%
select(-Habit)
View(Shrubs_Dry)
# Calculating the diversity index of Shrubs in Chepararia
Shrub_Diversity_Dry_Chep <- diversity(Shrubs_Dry$Chepararia, index = "shannon")
print(Shrub_Diversity_Dry_Chep)
## [1] 2.604089
# Calculating the diversity index of Shrubs in Riwo
Shrub_Diversity_Dry_Riwo <- diversity(Shrubs_Dry$Riwo, index = "shannon")
print(Shrub_Diversity_Dry_Riwo)
## [1] 1.222082
# Calculating the diversity index of Shrubs in Suam
Shrub_Diversity_Dry_Suam <- diversity(Shrubs_Dry$Suam, index = "shannon")
print(Shrub_Diversity_Dry_Suam)
## [1] 2.141341
# Diversity index of Trees in Chepararia, Riwo and Suam during the wet season
Trees_Dry <- Quadrat_Dry %>%
filter(Lifeform == "Tree") %>%
select(-Habit)
View (Trees_Dry)
# Calculating the diversity index of Trees in Chepararia
Tree_Diversity_Dry_Chep <- diversity(Trees_Dry$Chepararia, index = "shannon")
print(Tree_Diversity_Dry_Chep)
## [1] 2.584102
# Calculating the diversity index of Trees in Riwo
Tree_Diversity_Dry_Riwo <- diversity(Trees_Dry$Riwo, index = "shannon")
print(Tree_Diversity_Dry_Riwo)
## [1] 1.541546
# Calculating the diversity index of Trees in Suam
Tree_Diversity_Dry_Suam <- diversity(Trees_Dry$Suam, index = "shannon")
print(Tree_Diversity_Dry_Suam)
## [1] 1.85344
# Create a data frame of the dry season diversity indexes of all the lifeforms across the three wards.
Diversity_Dry_Chepararia <- c (Grass_Diversity_Dry_Chep, Forb_Diversity_Dry_Chep, Shrub_Diversity_Dry_Chep, Tree_Diversity_Dry_Chep)
Diversity_Dry_Riwo <- c (Grass_Diversity_Dry_Riwo, Forb_Diversity_Dry_Riwo, Shrub_Diversity_Dry_Riwo, Tree_Diversity_Dry_Riwo)
Diversity_Dry_Suam <- c (Grass_Diversity_Dry_Suam, Forb_Diversity_Dry_Suam, Shrub_Diversity_Dry_Suam, Tree_Diversity_Dry_Suam)
Species_Diversity_Dry <- data.frame(Lifeforms, Diversity_Dry_Chepararia, Diversity_Dry_Riwo, Diversity_Dry_Suam)
print(Species_Diversity_Dry)
## Lifeforms Diversity_Dry_Chepararia Diversity_Dry_Riwo Diversity_Dry_Suam
## 1 Grasses 1.629261 1.479434 1.235784
## 2 Forbs 1.406851 0.840778 1.427361
## 3 Shrubs 2.604089 1.222082 2.141341
## 4 Trees 2.584102 1.541546 1.853440
colnames(Species_Diversity_Dry) <- c("Lifeforms", "Chepararia", "Riwo", "Suam")
print(Species_Diversity_Dry)
## Lifeforms Chepararia Riwo Suam
## 1 Grasses 1.629261 1.479434 1.235784
## 2 Forbs 1.406851 0.840778 1.427361
## 3 Shrubs 2.604089 1.222082 2.141341
## 4 Trees 2.584102 1.541546 1.853440
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
library(tidyverse)
Species_Diversity_Dry_Long <- Species_Diversity_Dry %>%
pivot_longer(cols = c("Chepararia", "Riwo", "Suam"), names_to = "Wards", values_to = "Diversity")
print(Species_Diversity_Wet_Long)
## # A tibble: 12 × 3
## Lifeforms Wards Diversity
## <chr> <chr> <dbl>
## 1 Grasses Chepararia 2.03
## 2 Grasses Riwo 2.33
## 3 Grasses Suam 1.80
## 4 Forb Chepararia 1.91
## 5 Forb Riwo 2.28
## 6 Forb Suam 1.58
## 7 Shrubs Chepararia 2.35
## 8 Shrubs Riwo 2.12
## 9 Shrubs Suam 2.43
## 10 Trees Chepararia 2.48
## 11 Trees Riwo 2.37
## 12 Trees Suam 2.15
# ANOVA to assess variations in species diversity among the three wards during the dry season
Anova_Diversity_Dry <- aov (Diversity ~ Wards, data = Species_Diversity_Dry_Long)
summary(Anova_Diversity_Dry)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 1.233 0.6164 2.788 0.114
## Residuals 9 1.990 0.2211
ggplot(data = Species_Diversity_Dry_Long,
mapping = aes(x = Wards,
y = Diversity, fill = Lifeforms)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Dry Season Species Diversity in Wards of West Pokot County",
x = "Wards",
y = "Diversity Index",
fill = "Life Forms") +
theme_minimal()

# 3. DENSITY OF SPECIES
# Species density (Individuals/ha) = Total number of Identified Species/Total Sample Plot Area * 10,000m2.
# The sample plot for grasses and forbs measured 0.5m*0.5m = 0.25m2, shrubs measured 5m*5m= 25m2, and trees were sampled within a 10m*10m quadrat = 100m2.
# The Quadrat_Dry dataset will be used.
# 3.1 Density of grass species across the three wards
# Density of grasses in Chepararia during the dry season
Density_Grasses_Dry_Chep <- Grasses_Dry$Chepararia/0.25 *10000
print(Density_Grasses_Dry_Chep)
## [1] 120000 160000 40000 6120000 0 120000 1160000 880000 2480000
## [10] 80000 40000 0 0 40000 0 2200000 0 80000
## [19] 80000 0
# Density of grasses in Riwo during the dry season
Density_Grasses_Dry_Riwo <- Grasses_Dry$Riwo/0.25 * 10000
print(Density_Grasses_Dry_Riwo)
## [1] 0 200000 0 3880000 0 0 440000 0 3120000
## [10] 40000 0 120000 80000 0 280000 0 1160000 0
## [19] 0 80000
# Density of grasses in Suam during the dry season
Density_Grasses_Dry_Suam <- Grasses_Dry$Suam/0.25 * 10000
print(Density_Grasses_Dry_Suam)
## [1] 0 120000 0 280000 120000 0 1960000 0 280000
## [10] 0 0 0 400000 0 0 0 0 0
## [19] 0 0
# Create a data frame of the wet season densities of Grasses across the three Wards (Land use systems)
Density_Grasses_Dry <- data.frame(Grasses_Dry$Species, Density_Grasses_Dry_Chep, Density_Grasses_Dry_Riwo, Density_Grasses_Dry_Suam)
View(Density_Grasses_Dry)
colnames(Density_Grasses_Dry) <- c ("Grass species", "Chepararia", "Riwo", "Suam")
print(Density_Grasses_Dry)
## Grass species Chepararia Riwo Suam
## 1 Aristida adoensis 120000 0 0
## 2 Aristida adonseniensis 160000 200000 120000
## 3 Aristida keniensis 40000 0 0
## 4 Bothriochloa insculpta 6120000 3880000 280000
## 5 Brachiaria deflexa 0 0 120000
## 6 Cenchrus pennisetiformis 120000 0 0
## 7 Chloris pycnothrix 1160000 440000 1960000
## 8 Chrysopogon plumulosus 880000 0 0
## 9 Cynodon dactylon 2480000 3120000 280000
## 10 Digitaria velutina 80000 40000 0
## 11 Eleusine indica 40000 0 0
## 12 Eragrostis ciliaris 0 120000 0
## 13 Eragrostis congesta 0 80000 400000
## 14 Eragrostis superba 40000 0 0
## 15 Harpachne schimperi 0 280000 0
## 16 Heteropogon contortus 2200000 0 0
## 17 Microcloa kunthi 0 1160000 0
## 18 Melinis repens 80000 0 0
## 19 Sporobolus pyramidalis 80000 0 0
## 20 Tetrapogon spathecius 0 80000 0
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package (Tidyverse was already previously loaded onto R)
Density_Grasses_Dry_Long <- Density_Grasses_Dry %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Density")
print(Density_Grasses_Dry_Long)
## # A tibble: 60 × 3
## `Grass species` Wards Density
## <chr> <chr> <dbl>
## 1 Aristida adoensis Chepararia 120000
## 2 Aristida adoensis Riwo 0
## 3 Aristida adoensis Suam 0
## 4 Aristida adonseniensis Chepararia 160000
## 5 Aristida adonseniensis Riwo 200000
## 6 Aristida adonseniensis Suam 120000
## 7 Aristida keniensis Chepararia 40000
## 8 Aristida keniensis Riwo 0
## 9 Aristida keniensis Suam 0
## 10 Bothriochloa insculpta Chepararia 6120000
## # … with 50 more rows
# Anova analysis assess the impact of land use on grass species density during the wet season
Anova_Density_Grasses_Dry <- aov (Density ~ Wards, data = Density_Grasses_Dry_Long)
summary (Anova_Density_Grasses_Dry)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 2.760e+12 1.380e+12 1.171 0.317
## Residuals 57 6.714e+13 1.178e+12
# Density of Forbs across the three wards
# Density of Forbs in Chepararia during the dry season
Density_Forbs_Dry_Chep <- Forbs_Dry$Chepararia/0.25 *10000
print(Density_Forbs_Dry_Chep)
## [1] 120000 40000 40000 0 0 40000 40000 80000 1440000
## [10] 0 160000 0 720000 0 40000
# Density of Forbs in Riwo during the dry season
Density_Forbs_Dry_Riwo <- Forbs_Dry$Riwo/0.25 *10000
print(Density_Forbs_Dry_Riwo)
## [1] 0 0 0 0 0 0 0 80000 360000
## [10] 40000 0 280000 0 2280000 0
# Density of Forbs in Suam during the dry season
Density_Forbs_Dry_Suam <- Forbs_Dry$Suam/0.25 * 10000
print(Density_Forbs_Dry_Suam)
## [1] 0 0 0 40000 80000 0 0 480000 80000 0
## [11] 80000 0 0 280000 0
# Create a data frame of the wet season densities of Forbs across the three Wards (Land use systems)
Density_Forbs_Dry <- data.frame(Forbs_Dry$Species, Density_Forbs_Dry_Chep, Density_Forbs_Dry_Riwo, Density_Forbs_Dry_Suam)
print(Density_Forbs_Dry)
## Forbs_Dry.Species Density_Forbs_Dry_Chep Density_Forbs_Dry_Riwo
## 1 Achyranthes aspera 120000 0
## 2 Amaranth deflexas 40000 0
## 3 Blepharis integrifolia 40000 0
## 4 Caralluma dummeri 0 0
## 5 Clabea velutina 0 0
## 6 Commelina benghalensis 40000 0
## 7 Indigofera specata 40000 0
## 8 Kalanchoe lanceolata 80000 80000
## 9 Leonoitis molicima 1440000 360000
## 10 Pentanisia ouranogyne 0 40000
## 11 Richardia brasiliensis 160000 0
## 12 Ruellia patula 0 280000
## 13 Sonchus asper 720000 0
## 14 Stylosanthes fruticosa 0 2280000
## 15 Trichodesma zeylanicum 40000 0
## Density_Forbs_Dry_Suam
## 1 0
## 2 0
## 3 0
## 4 40000
## 5 80000
## 6 0
## 7 0
## 8 480000
## 9 80000
## 10 0
## 11 80000
## 12 0
## 13 0
## 14 280000
## 15 0
colnames(Density_Forbs_Dry) <- c("Forb Species", "Chepararia", "Riwo", "Suam")
print(Density_Forbs_Dry)
## Forb Species Chepararia Riwo Suam
## 1 Achyranthes aspera 120000 0 0
## 2 Amaranth deflexas 40000 0 0
## 3 Blepharis integrifolia 40000 0 0
## 4 Caralluma dummeri 0 0 40000
## 5 Clabea velutina 0 0 80000
## 6 Commelina benghalensis 40000 0 0
## 7 Indigofera specata 40000 0 0
## 8 Kalanchoe lanceolata 80000 80000 480000
## 9 Leonoitis molicima 1440000 360000 80000
## 10 Pentanisia ouranogyne 0 40000 0
## 11 Richardia brasiliensis 160000 0 80000
## 12 Ruellia patula 0 280000 0
## 13 Sonchus asper 720000 0 0
## 14 Stylosanthes fruticosa 0 2280000 280000
## 15 Trichodesma zeylanicum 40000 0 0
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package (Tidyverse was already previously loaded onto R)
Density_Forbs_Dry_Long <- Density_Forbs_Dry %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Density")
print(Density_Forbs_Dry_Long)
## # A tibble: 45 × 3
## `Forb Species` Wards Density
## <chr> <chr> <dbl>
## 1 Achyranthes aspera Chepararia 120000
## 2 Achyranthes aspera Riwo 0
## 3 Achyranthes aspera Suam 0
## 4 Amaranth deflexas Chepararia 40000
## 5 Amaranth deflexas Riwo 0
## 6 Amaranth deflexas Suam 0
## 7 Blepharis integrifolia Chepararia 40000
## 8 Blepharis integrifolia Riwo 0
## 9 Blepharis integrifolia Suam 0
## 10 Caralluma dummeri Chepararia 0
## # … with 35 more rows
# Anova analysis assess the impact of land use on grass species density during the wet season
Anova_Density_Forbs_Dry <- aov (Density ~ Wards, data = Density_Forbs_Dry_Long)
summary (Anova_Density_Forbs_Dry)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 1.539e+11 7.694e+10 0.448 0.642
## Residuals 42 7.209e+12 1.716e+11
# Density of Shrubs across the three wards
# Density of Shrubs in Chepararia during the dry season
Density_Shrubs_Dry_Chep <- Shrubs_Dry$Chepararia/25 * 10000
print(Density_Shrubs_Dry_Chep)
## [1] 400 0 4800 15200 800 0 400 400 800 16400 0 400
## [13] 400 0 15600 2000 0 0 14000 3200 0 9200 400 0
## [25] 16000 800 6400 0 0 1600 400 8800 8000 1200 42800 15200
## [37] 1200 0 400
# Density of Shrubs in Riwo during the dry season
Density_Shrubs_Dry_Riwo <- Shrubs_Dry$Riwo/25 * 10000
print(Density_Shrubs_Dry_Riwo)
## [1] 0 0 400 3600 0 400 400 3200 400 4000
## [11] 13600 0 0 400 400 800 1600 5600 198800 6800
## [21] 2400 2000 0 400 0 0 1600 400 0 800
## [31] 0 2000 4800 8400 0 400 0 400 400
# Density of Shrubs in Suam during the dry season
Density_Shrubs_Dry_Suam <- Shrubs_Dry$Suam/25 * 10000
print(Density_Shrubs_Dry_Suam)
## [1] 6400 14800 0 6400 0 0 49200 2000 0 38400
## [11] 0 0 0 0 7600 0 1200 0 144400 3600
## [21] 0 4800 0 2800 800 0 8400 0 127200 0
## [31] 0 51200 22400 0 0 40800 0 0 0
# Create a data frame of the dry season densities of Shrubs across the three Wards (Land use systems)
Density_Shrubs_Dry <- data.frame(Shrubs_Dry$Species, Density_Shrubs_Dry_Chep, Density_Shrubs_Dry_Riwo, Density_Shrubs_Dry_Suam)
print(Density_Shrubs_Dry)
## Shrubs_Dry.Species Density_Shrubs_Dry_Chep Density_Shrubs_Dry_Riwo
## 1 Acacia brevispica 400 0
## 2 Acacia reficiens 0 0
## 3 Achyranthes asper 4800 400
## 4 Aloe vera 15200 3600
## 5 Asperagus racemocus 800 0
## 6 Asparagus africanus 0 400
## 7 Barleria prionitis 400 400
## 8 Caparis fascicularis 400 3200
## 9 Carisa spinarum 800 400
## 10 Ciccus rotundifolia 16400 4000
## 11 Combretum hereroenes 0 13600
## 12 Croton dicogamus 400 0
## 13 Euclea divinoum 400 0
## 14 Euphorbia gospina 0 400
## 15 Grewia tenax 15600 400
## 16 Grewia vilosa 2000 800
## 17 Grewia tricocarpa 0 1600
## 18 Harissonia abscinica 0 5600
## 19 Hypoestes verticillaris 14000 198800
## 20 Ipomea kituensis 3200 6800
## 21 Justicia declipteroides 0 2400
## 22 Lantana camara 9200 2000
## 23 Lipia javanica 400 0
## 24 Maytenus heterophylla 0 400
## 25 Osimum suave 16000 0
## 26 Ocimum tenuifolia 800 0
## 27 Ormocarpum trichorcarpum 6400 1600
## 28 Oncoba spinosa 0 400
## 29 Sanseveria herenbergii 0 0
## 30 Searsia natalensis 1600 800
## 31 Senna didymobotrya 400 0
## 32 Senna ocidentalis 8800 2000
## 33 Senna optusifolia 8000 4800
## 34 Senna senguiyana 1200 8400
## 35 Sida cuneifolia 42800 0
## 36 Solanum incanum 15200 400
## 37 Tagetes minutaflora 1200 0
## 38 Teclea nobilis 0 400
## 39 Ximenia americana 400 400
## Density_Shrubs_Dry_Suam
## 1 6400
## 2 14800
## 3 0
## 4 6400
## 5 0
## 6 0
## 7 49200
## 8 2000
## 9 0
## 10 38400
## 11 0
## 12 0
## 13 0
## 14 0
## 15 7600
## 16 0
## 17 1200
## 18 0
## 19 144400
## 20 3600
## 21 0
## 22 4800
## 23 0
## 24 2800
## 25 800
## 26 0
## 27 8400
## 28 0
## 29 127200
## 30 0
## 31 0
## 32 51200
## 33 22400
## 34 0
## 35 0
## 36 40800
## 37 0
## 38 0
## 39 0
colnames(Density_Shrubs_Dry) <- c("Shrub Species", "Chepararia", "Riwo", "Suam")
print(Density_Shrubs_Dry)
## Shrub Species Chepararia Riwo Suam
## 1 Acacia brevispica 400 0 6400
## 2 Acacia reficiens 0 0 14800
## 3 Achyranthes asper 4800 400 0
## 4 Aloe vera 15200 3600 6400
## 5 Asperagus racemocus 800 0 0
## 6 Asparagus africanus 0 400 0
## 7 Barleria prionitis 400 400 49200
## 8 Caparis fascicularis 400 3200 2000
## 9 Carisa spinarum 800 400 0
## 10 Ciccus rotundifolia 16400 4000 38400
## 11 Combretum hereroenes 0 13600 0
## 12 Croton dicogamus 400 0 0
## 13 Euclea divinoum 400 0 0
## 14 Euphorbia gospina 0 400 0
## 15 Grewia tenax 15600 400 7600
## 16 Grewia vilosa 2000 800 0
## 17 Grewia tricocarpa 0 1600 1200
## 18 Harissonia abscinica 0 5600 0
## 19 Hypoestes verticillaris 14000 198800 144400
## 20 Ipomea kituensis 3200 6800 3600
## 21 Justicia declipteroides 0 2400 0
## 22 Lantana camara 9200 2000 4800
## 23 Lipia javanica 400 0 0
## 24 Maytenus heterophylla 0 400 2800
## 25 Osimum suave 16000 0 800
## 26 Ocimum tenuifolia 800 0 0
## 27 Ormocarpum trichorcarpum 6400 1600 8400
## 28 Oncoba spinosa 0 400 0
## 29 Sanseveria herenbergii 0 0 127200
## 30 Searsia natalensis 1600 800 0
## 31 Senna didymobotrya 400 0 0
## 32 Senna ocidentalis 8800 2000 51200
## 33 Senna optusifolia 8000 4800 22400
## 34 Senna senguiyana 1200 8400 0
## 35 Sida cuneifolia 42800 0 0
## 36 Solanum incanum 15200 400 40800
## 37 Tagetes minutaflora 1200 0 0
## 38 Teclea nobilis 0 400 0
## 39 Ximenia americana 400 400 0
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Density_Shrubs_Dry_Long <- Density_Shrubs_Dry %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Density")
print(Density_Shrubs_Dry_Long)
## # A tibble: 117 × 3
## `Shrub Species` Wards Density
## <chr> <chr> <dbl>
## 1 Acacia brevispica Chepararia 400
## 2 Acacia brevispica Riwo 0
## 3 Acacia brevispica Suam 6400
## 4 Acacia reficiens Chepararia 0
## 5 Acacia reficiens Riwo 0
## 6 Acacia reficiens Suam 14800
## 7 Achyranthes asper Chepararia 4800
## 8 Achyranthes asper Riwo 400
## 9 Achyranthes asper Suam 0
## 10 Aloe vera Chepararia 15200
## # … with 107 more rows
# Anova analysis assess the impact of land use on Shrub species density during the dry season
Anova_Density_Shrubs_Dry <- aov (Density ~ Wards, data = Density_Shrubs_Dry_Long)
summary (Anova_Density_Shrubs_Dry)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 1.683e+09 841653333 1.203 0.304
## Residuals 114 7.974e+10 699511939
# Density of Trees across the three wards
# Density of Trees in Chepararia during the dry season
Density_Trees_Dry_Chep <- Trees_Dry$Chepararia/100 * 10000
print(Density_Trees_Dry_Chep)
## [1] 1400 1500 600 2200 6000 3000 300 600 900 0 500 200 3600 200 0
## [16] 700 600 1000 6400 0 0 0 200 1500 0 0 200 0 0 100
## [31] 0 0 0 0 1000 0 0 300
# Density of Trees in Riwo during the dry season
Density_Trees_Dry_Riwo <- Trees_Dry$Riwo/100 * 10000
print(Density_Trees_Dry_Riwo)
## [1] 200 100 0 1100 24500 600 0 100 0 0 5300 0
## [13] 7100 0 0 0 0 0 100 100 0 0 0 400
## [25] 500 300 0 100 200 0 100 0 0 400 400 0
## [37] 700 1200
# Density of Trees in Chepararia during the dry season
Density_Trees_Dry_Suam <- Trees_Dry$Suam/100*10000
print(Density_Trees_Dry_Suam)
## [1] 0 100 100 2800 12800 300 0 1800 0 100 400 800
## [13] 2800 200 200 700 0 0 300 0 100 100 0 300
## [25] 0 300 0 0 0 0 0 300 200 0 0 400
## [37] 0 0
# Create a data frame of the dry season densities of Shrubs across the three Wards (Land use systems)
Density_Trees_Dry <- data.frame(Trees_Dry$Species, Density_Trees_Dry_Chep, Density_Trees_Dry_Riwo, Density_Trees_Dry_Suam)
print(Density_Trees_Dry)
## Trees_Dry.Species Density_Trees_Dry_Chep Density_Trees_Dry_Riwo
## 1 Acacia drepanalobium 1400 200
## 2 Acacia gerardii 1500 100
## 3 Acacia lahai 600 0
## 4 Acacia melifera 2200 1100
## 5 Acacia nilotica 6000 24500
## 6 Acacia senegal 3000 600
## 7 Acacia seyal 300 0
## 8 Acacia tortilis 600 100
## 9 Acokanthera oppositifolia 900 0
## 10 Adenium obusum 0 0
## 11 Albizia amara 500 5300
## 12 Albizia antialmintica 200 0
## 13 Balanites aegyptiaca 3600 7100
## 14 Boscia coriacea 200 0
## 15 Boscia salicifolia 0 0
## 16 Commiphora africana 700 0
## 17 Croton macrostachyus 600 0
## 18 Croton megalocarpus 1000 0
## 19 Euphorbia candelabrum 6400 100
## 20 Fathabia albida 0 100
## 21 Flacourtia indica 0 0
## 22 Gardenia volkensii 0 0
## 23 Gravillea robusta 200 0
## 24 Grewia bicolor 1500 400
## 25 Grewia tricocarpa 0 500
## 26 Lannea falva 0 300
## 27 Lannea trifala 200 0
## 28 Piliostigma thonningii 0 100
## 29 Sclerocarya birrea 0 200
## 30 Sesbania sesban 100 0
## 31 Tamarindus indica 0 100
## 32 Teclea nobilis 0 0
## 33 Terminalia brownii 0 0
## 34 Terminalia prunioides 0 400
## 35 Vangueria infausta 1000 400
## 36 Zanthoxylum chalybeum 0 0
## 37 Ziziphus abyssinica 0 700
## 38 Ziziphus mucronata 300 1200
## Density_Trees_Dry_Suam
## 1 0
## 2 100
## 3 100
## 4 2800
## 5 12800
## 6 300
## 7 0
## 8 1800
## 9 0
## 10 100
## 11 400
## 12 800
## 13 2800
## 14 200
## 15 200
## 16 700
## 17 0
## 18 0
## 19 300
## 20 0
## 21 100
## 22 100
## 23 0
## 24 300
## 25 0
## 26 300
## 27 0
## 28 0
## 29 0
## 30 0
## 31 0
## 32 300
## 33 200
## 34 0
## 35 0
## 36 400
## 37 0
## 38 0
colnames(Density_Trees_Dry) <- c("Tree Species", "Chepararia", "Riwo", "Suam")
print(Density_Trees_Dry)
## Tree Species Chepararia Riwo Suam
## 1 Acacia drepanalobium 1400 200 0
## 2 Acacia gerardii 1500 100 100
## 3 Acacia lahai 600 0 100
## 4 Acacia melifera 2200 1100 2800
## 5 Acacia nilotica 6000 24500 12800
## 6 Acacia senegal 3000 600 300
## 7 Acacia seyal 300 0 0
## 8 Acacia tortilis 600 100 1800
## 9 Acokanthera oppositifolia 900 0 0
## 10 Adenium obusum 0 0 100
## 11 Albizia amara 500 5300 400
## 12 Albizia antialmintica 200 0 800
## 13 Balanites aegyptiaca 3600 7100 2800
## 14 Boscia coriacea 200 0 200
## 15 Boscia salicifolia 0 0 200
## 16 Commiphora africana 700 0 700
## 17 Croton macrostachyus 600 0 0
## 18 Croton megalocarpus 1000 0 0
## 19 Euphorbia candelabrum 6400 100 300
## 20 Fathabia albida 0 100 0
## 21 Flacourtia indica 0 0 100
## 22 Gardenia volkensii 0 0 100
## 23 Gravillea robusta 200 0 0
## 24 Grewia bicolor 1500 400 300
## 25 Grewia tricocarpa 0 500 0
## 26 Lannea falva 0 300 300
## 27 Lannea trifala 200 0 0
## 28 Piliostigma thonningii 0 100 0
## 29 Sclerocarya birrea 0 200 0
## 30 Sesbania sesban 100 0 0
## 31 Tamarindus indica 0 100 0
## 32 Teclea nobilis 0 0 300
## 33 Terminalia brownii 0 0 200
## 34 Terminalia prunioides 0 400 0
## 35 Vangueria infausta 1000 400 0
## 36 Zanthoxylum chalybeum 0 0 400
## 37 Ziziphus abyssinica 0 700 0
## 38 Ziziphus mucronata 300 1200 0
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Density_Trees_Dry_Long <- Density_Trees_Dry %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Density")
print(Density_Trees_Dry_Long)
## # A tibble: 114 × 3
## `Tree Species` Wards Density
## <chr> <chr> <dbl>
## 1 Acacia drepanalobium Chepararia 1400
## 2 Acacia drepanalobium Riwo 200
## 3 Acacia drepanalobium Suam 0
## 4 Acacia gerardii Chepararia 1500
## 5 Acacia gerardii Riwo 100
## 6 Acacia gerardii Suam 100
## 7 Acacia lahai Chepararia 600
## 8 Acacia lahai Riwo 0
## 9 Acacia lahai Suam 100
## 10 Acacia melifera Chepararia 2200
## # … with 104 more rows
# Anova analysis assess the impact of land use on Shrub species density during the wet season
Anova_Density_Trees_Dry <- aov (Density ~ Wards, data = Density_Trees_Dry_Long)
summary (Anova_Density_Trees_Dry)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 4484386 2242193 0.28 0.756
## Residuals 111 888206842 8001863
# SPECIES COMPOSITION
# Species Count
Quadrat_Dry %>% count(Lifeform == "Grass")
## # A tibble: 2 × 2
## `Lifeform == "Grass"` n
## <lgl> <int>
## 1 FALSE 92
## 2 TRUE 20
Quadrat_Dry %>% count(Lifeform == "Forb")
## # A tibble: 2 × 2
## `Lifeform == "Forb"` n
## <lgl> <int>
## 1 FALSE 97
## 2 TRUE 15
Quadrat_Dry %>% count(Lifeform == "Shrub")
## # A tibble: 2 × 2
## `Lifeform == "Shrub"` n
## <lgl> <int>
## 1 FALSE 73
## 2 TRUE 39
Quadrat_Dry %>% count(Lifeform == "Tree")
## # A tibble: 2 × 2
## `Lifeform == "Tree"` n
## <lgl> <int>
## 1 FALSE 74
## 2 TRUE 38
Lifeforms <- c ("Grasses", "Forbs", "Shrubs", "Trees")
Total_Count_Dry <- c(21,15,39,38)
Grasses_Dry %>% count(Grasses_Dry$Habit == "Increaser")
## # A tibble: 2 × 2
## `Grasses_Dry$Habit == "Increaser"` n
## <lgl> <int>
## 1 FALSE 5
## 2 TRUE 15
Grasses_Dry %>% count(Grasses_Dry$Habit == "Decreaser")
## # A tibble: 2 × 2
## `Grasses_Dry$Habit == "Decreaser"` n
## <lgl> <int>
## 1 FALSE 15
## 2 TRUE 5
Grasses_Habit <- c ("Increasers", "Decreasers")
Habits_Count_Dry <- c (16,5)
Grasses_Habit_Count_Dry <- data.frame(Grasses_Habit, Habits_Count_Dry)
print(Grasses_Habit_Count_Dry)
## Grasses_Habit Habits_Count_Dry
## 1 Increasers 16
## 2 Decreasers 5
Increasers_Dry <- (16/(16+5))*100
print(Increasers_Dry)
## [1] 76.19048
Decreasers_Dry <- (5/(16+5)*100)
print(Decreasers_Dry)
## [1] 23.80952
percent_Habit_Count_Dry <- c(Increasers_Dry, Decreasers_Dry)
Grasses_Habit_Percent_Dry <- data.frame(Grasses_Habit_Count_Dry, percent_Habit_Count_Dry)
print(Grasses_Habit_Percent_Dry)
## Grasses_Habit Habits_Count_Dry percent_Habit_Count_Dry
## 1 Increasers 16 76.19048
## 2 Decreasers 5 23.80952
# Percent Grass Species Composition
# Percent Grass species Composition in Chepararia during the dry season
sum(Grasses_Dry$Chepararia)
## [1] 340
Composition_Grasses_Dry_Chep <- (Grasses_Dry$Chepararia/340)*100
print(Composition_Grasses_Dry_Chep)
## [1] 0.8823529 1.1764706 0.2941176 45.0000000 0.0000000 0.8823529
## [7] 8.5294118 6.4705882 18.2352941 0.5882353 0.2941176 0.0000000
## [13] 0.0000000 0.2941176 0.0000000 16.1764706 0.0000000 0.5882353
## [19] 0.5882353 0.0000000
sum(Composition_Grasses_Dry_Chep)
## [1] 100
# Percent Grass species Composition in Riwo during the dry season
sum(Grasses_Dry$Riwo)
## [1] 235
Composition_Grasses_Dry_Riwo <- (Grasses_Dry$Riwo/235)*100
print(Composition_Grasses_Dry_Riwo)
## [1] 0.0000000 2.1276596 0.0000000 41.2765957 0.0000000 0.0000000
## [7] 4.6808511 0.0000000 33.1914894 0.4255319 0.0000000 1.2765957
## [13] 0.8510638 0.0000000 2.9787234 0.0000000 12.3404255 0.0000000
## [19] 0.0000000 0.8510638
sum(Composition_Grasses_Dry_Riwo)
## [1] 100
# Percent Grass species Composition in Suam during the dry season
sum(Grasses_Dry$Suam)
## [1] 79
Composition_Grasses_Dry_Suam <- (Grasses_Dry$Suam/79)*100
print(Composition_Grasses_Dry_Suam)
## [1] 0.000000 3.797468 0.000000 8.860759 3.797468 0.000000 62.025316
## [8] 0.000000 8.860759 0.000000 0.000000 0.000000 12.658228 0.000000
## [15] 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
sum(Composition_Grasses_Dry_Suam)
## [1] 100
# Creating a data frame of the percent grass species composition across the three wards.
Composition_Grasses_Dry <- data.frame(Grasses_Dry$Species, Composition_Grasses_Dry_Chep, Composition_Grasses_Dry_Riwo, Composition_Grasses_Dry_Suam)
print(Composition_Grasses_Dry)
## Grasses_Dry.Species Composition_Grasses_Dry_Chep
## 1 Aristida adoensis 0.8823529
## 2 Aristida adonseniensis 1.1764706
## 3 Aristida keniensis 0.2941176
## 4 Bothriochloa insculpta 45.0000000
## 5 Brachiaria deflexa 0.0000000
## 6 Cenchrus pennisetiformis 0.8823529
## 7 Chloris pycnothrix 8.5294118
## 8 Chrysopogon plumulosus 6.4705882
## 9 Cynodon dactylon 18.2352941
## 10 Digitaria velutina 0.5882353
## 11 Eleusine indica 0.2941176
## 12 Eragrostis ciliaris 0.0000000
## 13 Eragrostis congesta 0.0000000
## 14 Eragrostis superba 0.2941176
## 15 Harpachne schimperi 0.0000000
## 16 Heteropogon contortus 16.1764706
## 17 Microcloa kunthi 0.0000000
## 18 Melinis repens 0.5882353
## 19 Sporobolus pyramidalis 0.5882353
## 20 Tetrapogon spathecius 0.0000000
## Composition_Grasses_Dry_Riwo Composition_Grasses_Dry_Suam
## 1 0.0000000 0.000000
## 2 2.1276596 3.797468
## 3 0.0000000 0.000000
## 4 41.2765957 8.860759
## 5 0.0000000 3.797468
## 6 0.0000000 0.000000
## 7 4.6808511 62.025316
## 8 0.0000000 0.000000
## 9 33.1914894 8.860759
## 10 0.4255319 0.000000
## 11 0.0000000 0.000000
## 12 1.2765957 0.000000
## 13 0.8510638 12.658228
## 14 0.0000000 0.000000
## 15 2.9787234 0.000000
## 16 0.0000000 0.000000
## 17 12.3404255 0.000000
## 18 0.0000000 0.000000
## 19 0.0000000 0.000000
## 20 0.8510638 0.000000
# Rename the column names for the Composition_Grasses_Wet newly created dataframe
colnames(Composition_Grasses_Dry) <- c ("Grass Species", "Chepararia", "Riwo", "Suam")
print(Composition_Grasses_Dry)
## Grass Species Chepararia Riwo Suam
## 1 Aristida adoensis 0.8823529 0.0000000 0.000000
## 2 Aristida adonseniensis 1.1764706 2.1276596 3.797468
## 3 Aristida keniensis 0.2941176 0.0000000 0.000000
## 4 Bothriochloa insculpta 45.0000000 41.2765957 8.860759
## 5 Brachiaria deflexa 0.0000000 0.0000000 3.797468
## 6 Cenchrus pennisetiformis 0.8823529 0.0000000 0.000000
## 7 Chloris pycnothrix 8.5294118 4.6808511 62.025316
## 8 Chrysopogon plumulosus 6.4705882 0.0000000 0.000000
## 9 Cynodon dactylon 18.2352941 33.1914894 8.860759
## 10 Digitaria velutina 0.5882353 0.4255319 0.000000
## 11 Eleusine indica 0.2941176 0.0000000 0.000000
## 12 Eragrostis ciliaris 0.0000000 1.2765957 0.000000
## 13 Eragrostis congesta 0.0000000 0.8510638 12.658228
## 14 Eragrostis superba 0.2941176 0.0000000 0.000000
## 15 Harpachne schimperi 0.0000000 2.9787234 0.000000
## 16 Heteropogon contortus 16.1764706 0.0000000 0.000000
## 17 Microcloa kunthi 0.0000000 12.3404255 0.000000
## 18 Melinis repens 0.5882353 0.0000000 0.000000
## 19 Sporobolus pyramidalis 0.5882353 0.0000000 0.000000
## 20 Tetrapogon spathecius 0.0000000 0.8510638 0.000000
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Composition_Grasses_Dry_Long <- Composition_Grasses_Dry %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Composition")
print(Composition_Grasses_Dry_Long)
## # A tibble: 60 × 3
## `Grass Species` Wards Composition
## <chr> <chr> <dbl>
## 1 Aristida adoensis Chepararia 0.882
## 2 Aristida adoensis Riwo 0
## 3 Aristida adoensis Suam 0
## 4 Aristida adonseniensis Chepararia 1.18
## 5 Aristida adonseniensis Riwo 2.13
## 6 Aristida adonseniensis Suam 3.80
## 7 Aristida keniensis Chepararia 0.294
## 8 Aristida keniensis Riwo 0
## 9 Aristida keniensis Suam 0
## 10 Bothriochloa insculpta Chepararia 45
## # … with 50 more rows
# Anova analysis assess the impact of land use on Grass species composition during the Dry season
Anova_Composition_Grasses_Dry <- aov (Composition ~ Wards, data = Composition_Grasses_Dry_Long)
summary (Anova_Composition_Grasses_Dry)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 0 0.0 0 1
## Residuals 57 8428 147.8
# Percent Forb Species Composition
# Percent Forb species Composition in Chepararia during the dry season
sum(Forbs_Dry$Chepararia)
## [1] 68
Composition_Forbs_Dry_Chep <- (Forbs_Dry$Chepararia/68)*100
print(Composition_Forbs_Dry_Chep)
## [1] 4.411765 1.470588 1.470588 0.000000 0.000000 1.470588 1.470588
## [8] 2.941176 52.941176 0.000000 5.882353 0.000000 26.470588 0.000000
## [15] 1.470588
sum(Composition_Forbs_Dry_Chep)
## [1] 100
# Percent Forb species Composition in Riwo during the dry season
sum(Forbs_Dry$Riwo)
## [1] 76
Composition_Forbs_Dry_Riwo <- (Forbs_Dry$Riwo/76)*100
print(Composition_Forbs_Dry_Riwo)
## [1] 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
## [8] 2.631579 11.842105 1.315789 0.000000 9.210526 0.000000 75.000000
## [15] 0.000000
sum(Composition_Forbs_Dry_Riwo)
## [1] 100
# Percent Forb species Composition in Suam during the dry season
sum(Forbs_Dry$Suam)
## [1] 26
Composition_Forbs_Dry_Suam <- (Forbs_Dry$Suam/26)*100
print(Composition_Forbs_Dry_Suam)
## [1] 0.000000 0.000000 0.000000 3.846154 7.692308 0.000000 0.000000
## [8] 46.153846 7.692308 0.000000 7.692308 0.000000 0.000000 26.923077
## [15] 0.000000
sum(Composition_Forbs_Dry_Suam)
## [1] 100
# Creating a data frame containing the percent forb species composition of the three wards
Composition_Forbs_Dry <- data.frame(Forbs_Dry$Species, Composition_Forbs_Dry_Chep, Composition_Forbs_Dry_Riwo, Composition_Forbs_Dry_Suam)
print(Composition_Forbs_Dry)
## Forbs_Dry.Species Composition_Forbs_Dry_Chep Composition_Forbs_Dry_Riwo
## 1 Achyranthes aspera 4.411765 0.000000
## 2 Amaranth deflexas 1.470588 0.000000
## 3 Blepharis integrifolia 1.470588 0.000000
## 4 Caralluma dummeri 0.000000 0.000000
## 5 Clabea velutina 0.000000 0.000000
## 6 Commelina benghalensis 1.470588 0.000000
## 7 Indigofera specata 1.470588 0.000000
## 8 Kalanchoe lanceolata 2.941176 2.631579
## 9 Leonoitis molicima 52.941176 11.842105
## 10 Pentanisia ouranogyne 0.000000 1.315789
## 11 Richardia brasiliensis 5.882353 0.000000
## 12 Ruellia patula 0.000000 9.210526
## 13 Sonchus asper 26.470588 0.000000
## 14 Stylosanthes fruticosa 0.000000 75.000000
## 15 Trichodesma zeylanicum 1.470588 0.000000
## Composition_Forbs_Dry_Suam
## 1 0.000000
## 2 0.000000
## 3 0.000000
## 4 3.846154
## 5 7.692308
## 6 0.000000
## 7 0.000000
## 8 46.153846
## 9 7.692308
## 10 0.000000
## 11 7.692308
## 12 0.000000
## 13 0.000000
## 14 26.923077
## 15 0.000000
# Rename the column names for the Composition_Forbs_Dry newly created dataframe
colnames(Composition_Forbs_Dry) <- c ("Forb Species", "Chepararia", "Riwo", "Suam")
print(Composition_Forbs_Dry)
## Forb Species Chepararia Riwo Suam
## 1 Achyranthes aspera 4.411765 0.000000 0.000000
## 2 Amaranth deflexas 1.470588 0.000000 0.000000
## 3 Blepharis integrifolia 1.470588 0.000000 0.000000
## 4 Caralluma dummeri 0.000000 0.000000 3.846154
## 5 Clabea velutina 0.000000 0.000000 7.692308
## 6 Commelina benghalensis 1.470588 0.000000 0.000000
## 7 Indigofera specata 1.470588 0.000000 0.000000
## 8 Kalanchoe lanceolata 2.941176 2.631579 46.153846
## 9 Leonoitis molicima 52.941176 11.842105 7.692308
## 10 Pentanisia ouranogyne 0.000000 1.315789 0.000000
## 11 Richardia brasiliensis 5.882353 0.000000 7.692308
## 12 Ruellia patula 0.000000 9.210526 0.000000
## 13 Sonchus asper 26.470588 0.000000 0.000000
## 14 Stylosanthes fruticosa 0.000000 75.000000 26.923077
## 15 Trichodesma zeylanicum 1.470588 0.000000 0.000000
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Composition_Forbs_Dry_Long <- Composition_Forbs_Dry %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Composition")
print(Composition_Forbs_Dry_Long)
## # A tibble: 45 × 3
## `Forb Species` Wards Composition
## <chr> <chr> <dbl>
## 1 Achyranthes aspera Chepararia 4.41
## 2 Achyranthes aspera Riwo 0
## 3 Achyranthes aspera Suam 0
## 4 Amaranth deflexas Chepararia 1.47
## 5 Amaranth deflexas Riwo 0
## 6 Amaranth deflexas Suam 0
## 7 Blepharis integrifolia Chepararia 1.47
## 8 Blepharis integrifolia Riwo 0
## 9 Blepharis integrifolia Suam 0
## 10 Caralluma dummeri Chepararia 0
## # … with 35 more rows
# Anova analysis assess the impact of land use on Forb species composition during the Dry season
Anova_Composition_Forbs_Dry <- aov (Composition ~ Wards, data = Composition_Forbs_Dry_Long)
summary (Anova_Composition_Forbs_Dry)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 0 0.0 0 1
## Residuals 42 10483 249.6
# Percent Shrub Species Composition
# Percent Shrub species Composition in Chepararia during the dry season
sum(Shrubs_Dry$Chepararia)
## [1] 468
Composition_Shrubs_Dry_Chep <- (Shrubs_Dry$Chepararia/468)*100
print(Composition_Shrubs_Dry_Chep)
## [1] 0.2136752 0.0000000 2.5641026 8.1196581 0.4273504 0.0000000
## [7] 0.2136752 0.2136752 0.4273504 8.7606838 0.0000000 0.2136752
## [13] 0.2136752 0.0000000 8.3333333 1.0683761 0.0000000 0.0000000
## [19] 7.4786325 1.7094017 0.0000000 4.9145299 0.2136752 0.0000000
## [25] 8.5470085 0.4273504 3.4188034 0.0000000 0.0000000 0.8547009
## [31] 0.2136752 4.7008547 4.2735043 0.6410256 22.8632479 8.1196581
## [37] 0.6410256 0.0000000 0.2136752
sum(Composition_Shrubs_Dry_Chep)
## [1] 100
# Percent Shrub species Composition in Riwo during the dry season
sum(Shrubs_Dry$Riwo)
## [1] 661
Composition_Shrubs_Dry_Riwo <- (Shrubs_Dry$Riwo/661)*100
print(Composition_Shrubs_Dry_Riwo)
## [1] 0.0000000 0.0000000 0.1512859 1.3615734 0.0000000 0.1512859
## [7] 0.1512859 1.2102874 0.1512859 1.5128593 5.1437216 0.0000000
## [13] 0.0000000 0.1512859 0.1512859 0.3025719 0.6051437 2.1180030
## [19] 75.1891074 2.5718608 0.9077156 0.7564297 0.0000000 0.1512859
## [25] 0.0000000 0.0000000 0.6051437 0.1512859 0.0000000 0.3025719
## [31] 0.0000000 0.7564297 1.8154312 3.1770045 0.0000000 0.1512859
## [37] 0.0000000 0.1512859 0.1512859
sum(Composition_Shrubs_Dry_Riwo)
## [1] 100
# Percent Shrub species Composition in Suam during the dry season
sum(Shrubs_Dry$Suam)
## [1] 1331
Composition_Shrubs_Dry_Suam <- (Shrubs_Dry$Suam/1331)*100
sum(Composition_Shrubs_Dry_Suam)
## [1] 100
# Creating a data frame containing the percent Shrub species composition of the three wards
Composition_Shrubs_Dry <- data.frame(Shrubs_Dry$Species, Composition_Shrubs_Dry_Chep, Composition_Shrubs_Dry_Riwo, Composition_Shrubs_Dry_Suam)
print(Composition_Shrubs_Dry)
## Shrubs_Dry.Species Composition_Shrubs_Dry_Chep
## 1 Acacia brevispica 0.2136752
## 2 Acacia reficiens 0.0000000
## 3 Achyranthes asper 2.5641026
## 4 Aloe vera 8.1196581
## 5 Asperagus racemocus 0.4273504
## 6 Asparagus africanus 0.0000000
## 7 Barleria prionitis 0.2136752
## 8 Caparis fascicularis 0.2136752
## 9 Carisa spinarum 0.4273504
## 10 Ciccus rotundifolia 8.7606838
## 11 Combretum hereroenes 0.0000000
## 12 Croton dicogamus 0.2136752
## 13 Euclea divinoum 0.2136752
## 14 Euphorbia gospina 0.0000000
## 15 Grewia tenax 8.3333333
## 16 Grewia vilosa 1.0683761
## 17 Grewia tricocarpa 0.0000000
## 18 Harissonia abscinica 0.0000000
## 19 Hypoestes verticillaris 7.4786325
## 20 Ipomea kituensis 1.7094017
## 21 Justicia declipteroides 0.0000000
## 22 Lantana camara 4.9145299
## 23 Lipia javanica 0.2136752
## 24 Maytenus heterophylla 0.0000000
## 25 Osimum suave 8.5470085
## 26 Ocimum tenuifolia 0.4273504
## 27 Ormocarpum trichorcarpum 3.4188034
## 28 Oncoba spinosa 0.0000000
## 29 Sanseveria herenbergii 0.0000000
## 30 Searsia natalensis 0.8547009
## 31 Senna didymobotrya 0.2136752
## 32 Senna ocidentalis 4.7008547
## 33 Senna optusifolia 4.2735043
## 34 Senna senguiyana 0.6410256
## 35 Sida cuneifolia 22.8632479
## 36 Solanum incanum 8.1196581
## 37 Tagetes minutaflora 0.6410256
## 38 Teclea nobilis 0.0000000
## 39 Ximenia americana 0.2136752
## Composition_Shrubs_Dry_Riwo Composition_Shrubs_Dry_Suam
## 1 0.0000000 1.2021037
## 2 0.0000000 2.7798648
## 3 0.1512859 0.0000000
## 4 1.3615734 1.2021037
## 5 0.0000000 0.0000000
## 6 0.1512859 0.0000000
## 7 0.1512859 9.2411721
## 8 1.2102874 0.3756574
## 9 0.1512859 0.0000000
## 10 1.5128593 7.2126221
## 11 5.1437216 0.0000000
## 12 0.0000000 0.0000000
## 13 0.0000000 0.0000000
## 14 0.1512859 0.0000000
## 15 0.1512859 1.4274981
## 16 0.3025719 0.0000000
## 17 0.6051437 0.2253944
## 18 2.1180030 0.0000000
## 19 75.1891074 27.1224643
## 20 2.5718608 0.6761833
## 21 0.9077156 0.0000000
## 22 0.7564297 0.9015778
## 23 0.0000000 0.0000000
## 24 0.1512859 0.5259204
## 25 0.0000000 0.1502630
## 26 0.0000000 0.0000000
## 27 0.6051437 1.5777611
## 28 0.1512859 0.0000000
## 29 0.0000000 23.8918107
## 30 0.3025719 0.0000000
## 31 0.0000000 0.0000000
## 32 0.7564297 9.6168295
## 33 1.8154312 4.2073629
## 34 3.1770045 0.0000000
## 35 0.0000000 0.0000000
## 36 0.1512859 7.6634110
## 37 0.0000000 0.0000000
## 38 0.1512859 0.0000000
## 39 0.1512859 0.0000000
# Rename the column names for the Composition_Shrubs_Dry newly created dataframe
colnames(Composition_Shrubs_Dry) <- c("Shrub Species", "Chepararia", "Riwo", "Suam")
print(Composition_Shrubs_Dry)
## Shrub Species Chepararia Riwo Suam
## 1 Acacia brevispica 0.2136752 0.0000000 1.2021037
## 2 Acacia reficiens 0.0000000 0.0000000 2.7798648
## 3 Achyranthes asper 2.5641026 0.1512859 0.0000000
## 4 Aloe vera 8.1196581 1.3615734 1.2021037
## 5 Asperagus racemocus 0.4273504 0.0000000 0.0000000
## 6 Asparagus africanus 0.0000000 0.1512859 0.0000000
## 7 Barleria prionitis 0.2136752 0.1512859 9.2411721
## 8 Caparis fascicularis 0.2136752 1.2102874 0.3756574
## 9 Carisa spinarum 0.4273504 0.1512859 0.0000000
## 10 Ciccus rotundifolia 8.7606838 1.5128593 7.2126221
## 11 Combretum hereroenes 0.0000000 5.1437216 0.0000000
## 12 Croton dicogamus 0.2136752 0.0000000 0.0000000
## 13 Euclea divinoum 0.2136752 0.0000000 0.0000000
## 14 Euphorbia gospina 0.0000000 0.1512859 0.0000000
## 15 Grewia tenax 8.3333333 0.1512859 1.4274981
## 16 Grewia vilosa 1.0683761 0.3025719 0.0000000
## 17 Grewia tricocarpa 0.0000000 0.6051437 0.2253944
## 18 Harissonia abscinica 0.0000000 2.1180030 0.0000000
## 19 Hypoestes verticillaris 7.4786325 75.1891074 27.1224643
## 20 Ipomea kituensis 1.7094017 2.5718608 0.6761833
## 21 Justicia declipteroides 0.0000000 0.9077156 0.0000000
## 22 Lantana camara 4.9145299 0.7564297 0.9015778
## 23 Lipia javanica 0.2136752 0.0000000 0.0000000
## 24 Maytenus heterophylla 0.0000000 0.1512859 0.5259204
## 25 Osimum suave 8.5470085 0.0000000 0.1502630
## 26 Ocimum tenuifolia 0.4273504 0.0000000 0.0000000
## 27 Ormocarpum trichorcarpum 3.4188034 0.6051437 1.5777611
## 28 Oncoba spinosa 0.0000000 0.1512859 0.0000000
## 29 Sanseveria herenbergii 0.0000000 0.0000000 23.8918107
## 30 Searsia natalensis 0.8547009 0.3025719 0.0000000
## 31 Senna didymobotrya 0.2136752 0.0000000 0.0000000
## 32 Senna ocidentalis 4.7008547 0.7564297 9.6168295
## 33 Senna optusifolia 4.2735043 1.8154312 4.2073629
## 34 Senna senguiyana 0.6410256 3.1770045 0.0000000
## 35 Sida cuneifolia 22.8632479 0.0000000 0.0000000
## 36 Solanum incanum 8.1196581 0.1512859 7.6634110
## 37 Tagetes minutaflora 0.6410256 0.0000000 0.0000000
## 38 Teclea nobilis 0.0000000 0.1512859 0.0000000
## 39 Ximenia americana 0.2136752 0.1512859 0.0000000
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Composition_Shrubs_Dry_Long <- Composition_Shrubs_Dry %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Composition")
print(Composition_Shrubs_Dry_Long)
## # A tibble: 117 × 3
## `Shrub Species` Wards Composition
## <chr> <chr> <dbl>
## 1 Acacia brevispica Chepararia 0.214
## 2 Acacia brevispica Riwo 0
## 3 Acacia brevispica Suam 1.20
## 4 Acacia reficiens Chepararia 0
## 5 Acacia reficiens Riwo 0
## 6 Acacia reficiens Suam 2.78
## 7 Achyranthes asper Chepararia 2.56
## 8 Achyranthes asper Riwo 0.151
## 9 Achyranthes asper Suam 0
## 10 Aloe vera Chepararia 8.12
## # … with 107 more rows
# Anova analysis assess the impact of land use on Shrub species composition during the Dry season
Anova_Composition_Shrubs_Dry <- aov (Composition ~ Wards, data = Composition_Shrubs_Dry_Long)
summary (Anova_Composition_Shrubs_Dry)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 0 0.0 0 1
## Residuals 114 7593 66.6
# Percent Tree Species Composition
# Percent Tree species Composition in Chepararia during the dry season
sum(Trees_Dry$Chepararia)
## [1] 330
Composition_Trees_Dry_Chep <- (Trees_Dry$Chepararia/330)*100
print(Composition_Trees_Dry_Chep)
## [1] 4.2424242 4.5454545 1.8181818 6.6666667 18.1818182 9.0909091
## [7] 0.9090909 1.8181818 2.7272727 0.0000000 1.5151515 0.6060606
## [13] 10.9090909 0.6060606 0.0000000 2.1212121 1.8181818 3.0303030
## [19] 19.3939394 0.0000000 0.0000000 0.0000000 0.6060606 4.5454545
## [25] 0.0000000 0.0000000 0.6060606 0.0000000 0.0000000 0.3030303
## [31] 0.0000000 0.0000000 0.0000000 0.0000000 3.0303030 0.0000000
## [37] 0.0000000 0.9090909
sum(Composition_Trees_Dry_Chep)
## [1] 100
# Percent Tree species Composition in Riwo during the dry season
sum(Trees_Dry$Riwo)
## [1] 435
Composition_Trees_Dry_Riwo <- (Trees_Dry$Riwo/435)*100
print(Composition_Trees_Dry_Riwo)
## [1] 0.4597701 0.2298851 0.0000000 2.5287356 56.3218391 1.3793103
## [7] 0.0000000 0.2298851 0.0000000 0.0000000 12.1839080 0.0000000
## [13] 16.3218391 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## [19] 0.2298851 0.2298851 0.0000000 0.0000000 0.0000000 0.9195402
## [25] 1.1494253 0.6896552 0.0000000 0.2298851 0.4597701 0.0000000
## [31] 0.2298851 0.0000000 0.0000000 0.9195402 0.9195402 0.0000000
## [37] 1.6091954 2.7586207
sum(Composition_Trees_Dry_Riwo)
## [1] 100
# Percent Tree species Composition in Suam during the dry season
sum(Trees_Dry$Suam)
## [1] 251
Composition_Trees_Dry_Suam <- (Trees_Dry$Suam/251)*100
print(Composition_Trees_Dry_Suam)
## [1] 0.0000000 0.3984064 0.3984064 11.1553785 50.9960159 1.1952191
## [7] 0.0000000 7.1713147 0.0000000 0.3984064 1.5936255 3.1872510
## [13] 11.1553785 0.7968127 0.7968127 2.7888446 0.0000000 0.0000000
## [19] 1.1952191 0.0000000 0.3984064 0.3984064 0.0000000 1.1952191
## [25] 0.0000000 1.1952191 0.0000000 0.0000000 0.0000000 0.0000000
## [31] 0.0000000 1.1952191 0.7968127 0.0000000 0.0000000 1.5936255
## [37] 0.0000000 0.0000000
sum(Composition_Trees_Dry_Suam)
## [1] 100
# Creating a data frame containing the percent Tree species composition of the three wards
Composition_Trees_Dry <- data.frame(Trees_Dry$Species, Composition_Trees_Dry_Chep, Composition_Trees_Dry_Riwo, Composition_Trees_Dry_Suam)
print(Composition_Trees_Dry)
## Trees_Dry.Species Composition_Trees_Dry_Chep
## 1 Acacia drepanalobium 4.2424242
## 2 Acacia gerardii 4.5454545
## 3 Acacia lahai 1.8181818
## 4 Acacia melifera 6.6666667
## 5 Acacia nilotica 18.1818182
## 6 Acacia senegal 9.0909091
## 7 Acacia seyal 0.9090909
## 8 Acacia tortilis 1.8181818
## 9 Acokanthera oppositifolia 2.7272727
## 10 Adenium obusum 0.0000000
## 11 Albizia amara 1.5151515
## 12 Albizia antialmintica 0.6060606
## 13 Balanites aegyptiaca 10.9090909
## 14 Boscia coriacea 0.6060606
## 15 Boscia salicifolia 0.0000000
## 16 Commiphora africana 2.1212121
## 17 Croton macrostachyus 1.8181818
## 18 Croton megalocarpus 3.0303030
## 19 Euphorbia candelabrum 19.3939394
## 20 Fathabia albida 0.0000000
## 21 Flacourtia indica 0.0000000
## 22 Gardenia volkensii 0.0000000
## 23 Gravillea robusta 0.6060606
## 24 Grewia bicolor 4.5454545
## 25 Grewia tricocarpa 0.0000000
## 26 Lannea falva 0.0000000
## 27 Lannea trifala 0.6060606
## 28 Piliostigma thonningii 0.0000000
## 29 Sclerocarya birrea 0.0000000
## 30 Sesbania sesban 0.3030303
## 31 Tamarindus indica 0.0000000
## 32 Teclea nobilis 0.0000000
## 33 Terminalia brownii 0.0000000
## 34 Terminalia prunioides 0.0000000
## 35 Vangueria infausta 3.0303030
## 36 Zanthoxylum chalybeum 0.0000000
## 37 Ziziphus abyssinica 0.0000000
## 38 Ziziphus mucronata 0.9090909
## Composition_Trees_Dry_Riwo Composition_Trees_Dry_Suam
## 1 0.4597701 0.0000000
## 2 0.2298851 0.3984064
## 3 0.0000000 0.3984064
## 4 2.5287356 11.1553785
## 5 56.3218391 50.9960159
## 6 1.3793103 1.1952191
## 7 0.0000000 0.0000000
## 8 0.2298851 7.1713147
## 9 0.0000000 0.0000000
## 10 0.0000000 0.3984064
## 11 12.1839080 1.5936255
## 12 0.0000000 3.1872510
## 13 16.3218391 11.1553785
## 14 0.0000000 0.7968127
## 15 0.0000000 0.7968127
## 16 0.0000000 2.7888446
## 17 0.0000000 0.0000000
## 18 0.0000000 0.0000000
## 19 0.2298851 1.1952191
## 20 0.2298851 0.0000000
## 21 0.0000000 0.3984064
## 22 0.0000000 0.3984064
## 23 0.0000000 0.0000000
## 24 0.9195402 1.1952191
## 25 1.1494253 0.0000000
## 26 0.6896552 1.1952191
## 27 0.0000000 0.0000000
## 28 0.2298851 0.0000000
## 29 0.4597701 0.0000000
## 30 0.0000000 0.0000000
## 31 0.2298851 0.0000000
## 32 0.0000000 1.1952191
## 33 0.0000000 0.7968127
## 34 0.9195402 0.0000000
## 35 0.9195402 0.0000000
## 36 0.0000000 1.5936255
## 37 1.6091954 0.0000000
## 38 2.7586207 0.0000000
# Rename the column names for the Composition_Trees_Dry newly created dataframe
colnames(Composition_Trees_Dry) <- c("Tree Species", "Chepararia", "Riwo", "Suam")
print(Composition_Trees_Dry)
## Tree Species Chepararia Riwo Suam
## 1 Acacia drepanalobium 4.2424242 0.4597701 0.0000000
## 2 Acacia gerardii 4.5454545 0.2298851 0.3984064
## 3 Acacia lahai 1.8181818 0.0000000 0.3984064
## 4 Acacia melifera 6.6666667 2.5287356 11.1553785
## 5 Acacia nilotica 18.1818182 56.3218391 50.9960159
## 6 Acacia senegal 9.0909091 1.3793103 1.1952191
## 7 Acacia seyal 0.9090909 0.0000000 0.0000000
## 8 Acacia tortilis 1.8181818 0.2298851 7.1713147
## 9 Acokanthera oppositifolia 2.7272727 0.0000000 0.0000000
## 10 Adenium obusum 0.0000000 0.0000000 0.3984064
## 11 Albizia amara 1.5151515 12.1839080 1.5936255
## 12 Albizia antialmintica 0.6060606 0.0000000 3.1872510
## 13 Balanites aegyptiaca 10.9090909 16.3218391 11.1553785
## 14 Boscia coriacea 0.6060606 0.0000000 0.7968127
## 15 Boscia salicifolia 0.0000000 0.0000000 0.7968127
## 16 Commiphora africana 2.1212121 0.0000000 2.7888446
## 17 Croton macrostachyus 1.8181818 0.0000000 0.0000000
## 18 Croton megalocarpus 3.0303030 0.0000000 0.0000000
## 19 Euphorbia candelabrum 19.3939394 0.2298851 1.1952191
## 20 Fathabia albida 0.0000000 0.2298851 0.0000000
## 21 Flacourtia indica 0.0000000 0.0000000 0.3984064
## 22 Gardenia volkensii 0.0000000 0.0000000 0.3984064
## 23 Gravillea robusta 0.6060606 0.0000000 0.0000000
## 24 Grewia bicolor 4.5454545 0.9195402 1.1952191
## 25 Grewia tricocarpa 0.0000000 1.1494253 0.0000000
## 26 Lannea falva 0.0000000 0.6896552 1.1952191
## 27 Lannea trifala 0.6060606 0.0000000 0.0000000
## 28 Piliostigma thonningii 0.0000000 0.2298851 0.0000000
## 29 Sclerocarya birrea 0.0000000 0.4597701 0.0000000
## 30 Sesbania sesban 0.3030303 0.0000000 0.0000000
## 31 Tamarindus indica 0.0000000 0.2298851 0.0000000
## 32 Teclea nobilis 0.0000000 0.0000000 1.1952191
## 33 Terminalia brownii 0.0000000 0.0000000 0.7968127
## 34 Terminalia prunioides 0.0000000 0.9195402 0.0000000
## 35 Vangueria infausta 3.0303030 0.9195402 0.0000000
## 36 Zanthoxylum chalybeum 0.0000000 0.0000000 1.5936255
## 37 Ziziphus abyssinica 0.0000000 1.6091954 0.0000000
## 38 Ziziphus mucronata 0.9090909 2.7586207 0.0000000
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Composition_Trees_Dry_Long <- Composition_Trees_Dry %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Composition")
print(Composition_Trees_Dry_Long)
## # A tibble: 114 × 3
## `Tree Species` Wards Composition
## <chr> <chr> <dbl>
## 1 Acacia drepanalobium Chepararia 4.24
## 2 Acacia drepanalobium Riwo 0.460
## 3 Acacia drepanalobium Suam 0
## 4 Acacia gerardii Chepararia 4.55
## 5 Acacia gerardii Riwo 0.230
## 6 Acacia gerardii Suam 0.398
## 7 Acacia lahai Chepararia 1.82
## 8 Acacia lahai Riwo 0
## 9 Acacia lahai Suam 0.398
## 10 Acacia melifera Chepararia 6.67
## # … with 104 more rows
# Anova analysis assess the impact of land use on Tree species composition during the Dry season
Anova_Composition_Trees_Dry <- aov (Composition ~ Wards, data = Composition_Trees_Dry_Long)
summary (Anova_Composition_Trees_Dry)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 0 0.00 0 1
## Residuals 111 6813 61.38
# DRY SEASON GROUND COVER
Point_Dry <- read_xlsx("WP_Vegetation.xlsx", sheet = 6)
print(Point_Dry)
## # A tibble: 26 × 4
## Species Chepararia Riwo Suam
## <chr> <dbl> <dbl> <dbl>
## 1 Aristida adoensis 3 0 0
## 2 Aristida adscensionis 6 10 4
## 3 Aristida keniensis 1 0 0
## 4 Bare ground 74 84 127
## 5 Barleria prionitis 0 0 1
## 6 Bothriochloa insculpta 42 19 10
## 7 Brachiaria deflexa 0 0 2
## 8 Cenchrus pennisetiformis 3 0 0
## 9 Chloris pycnothrix 6 16 17
## 10 Chrysopogon plumulosus 7 1 0
## # … with 16 more rows
# Ground Cover percent in Chepararia during the dry season
sum(Point_Dry$Chepararia)
## [1] 240
Ground_Cover_Dry_Chep <- (Point_Dry$Chepararia/240)*100
print(Ground_Cover_Dry_Chep)
## [1] 1.2500000 2.5000000 0.4166667 30.8333333 0.0000000 17.5000000
## [7] 0.0000000 1.2500000 2.5000000 2.9166667 11.2500000 0.8333333
## [13] 3.7500000 0.4166667 0.0000000 0.4166667 1.6666667 0.4166667
## [19] 0.4166667 0.0000000 16.6666667 0.0000000 0.4166667 2.9166667
## [25] 1.6666667 0.0000000
# Ground Cover percent in Riwo during the dry season
sum(Point_Dry$Riwo)
## [1] 240
Ground_Cover_Dry_Riwo <- (Point_Dry$Riwo/240)*100
print(Ground_Cover_Dry_Riwo)
## [1] 0.0000000 4.1666667 0.0000000 35.0000000 0.0000000 7.9166667
## [7] 0.0000000 0.0000000 6.6666667 0.4166667 9.1666667 0.4166667
## [13] 0.4166667 0.0000000 0.0000000 2.0833333 0.0000000 0.0000000
## [19] 0.0000000 0.4166667 23.3333333 2.5000000 0.0000000 6.2500000
## [25] 0.4166667 0.8333333
# Ground Cover percent in Suam during the dry season
sum(Point_Dry$Suam)
## [1] 240
Ground_Cover_Dry_Suam <- (Point_Dry$Suam/240)*100
print(Ground_Cover_Dry_Suam)
## [1] 0.0000000 1.6666667 0.0000000 52.9166667 0.4166667 4.1666667
## [7] 0.8333333 0.0000000 7.0833333 0.0000000 1.6666667 0.0000000
## [13] 0.8333333 0.0000000 0.4166667 0.4166667 0.0000000 0.0000000
## [19] 0.0000000 0.0000000 21.6666667 0.0000000 0.0000000 7.9166667
## [25] 0.0000000 0.0000000
# Creating a data frame containing the Ground cover percentages of species in the three wards
Ground_Cover_Dry <- data.frame(Point_Dry$Species, Ground_Cover_Dry_Chep, Ground_Cover_Dry_Riwo, Ground_Cover_Dry_Suam)
print(Ground_Cover_Dry)
## Point_Dry.Species Ground_Cover_Dry_Chep Ground_Cover_Dry_Riwo
## 1 Aristida adoensis 1.2500000 0.0000000
## 2 Aristida adscensionis 2.5000000 4.1666667
## 3 Aristida keniensis 0.4166667 0.0000000
## 4 Bare ground 30.8333333 35.0000000
## 5 Barleria prionitis 0.0000000 0.0000000
## 6 Bothriochloa insculpta 17.5000000 7.9166667
## 7 Brachiaria deflexa 0.0000000 0.0000000
## 8 Cenchrus pennisetiformis 1.2500000 0.0000000
## 9 Chloris pycnothrix 2.5000000 6.6666667
## 10 Chrysopogon plumulosus 2.9166667 0.4166667
## 11 Cynodon dactylon 11.2500000 9.1666667
## 12 Digitaria velutina 0.8333333 0.4166667
## 13 Dung 3.7500000 0.4166667
## 14 Eleusine indica 0.4166667 0.0000000
## 15 Eragrostis ciliaris 0.0000000 0.0000000
## 16 Eragrostis congesta 0.4166667 2.0833333
## 17 Eragrostis superba 1.6666667 0.0000000
## 18 Grewia tenax 0.4166667 0.0000000
## 19 Heteropogon contortus 0.4166667 0.0000000
## 20 Hyperhenia rufa 0.0000000 0.4166667
## 21 Litter 16.6666667 23.3333333
## 22 Microchloa kunthii 0.0000000 2.5000000
## 23 Melinis repens 0.4166667 0.0000000
## 24 Rock 2.9166667 6.2500000
## 25 Sporobolus pyramidalis 1.6666667 0.4166667
## 26 Tetrapogon spathecius 0.0000000 0.8333333
## Ground_Cover_Dry_Suam
## 1 0.0000000
## 2 1.6666667
## 3 0.0000000
## 4 52.9166667
## 5 0.4166667
## 6 4.1666667
## 7 0.8333333
## 8 0.0000000
## 9 7.0833333
## 10 0.0000000
## 11 1.6666667
## 12 0.0000000
## 13 0.8333333
## 14 0.0000000
## 15 0.4166667
## 16 0.4166667
## 17 0.0000000
## 18 0.0000000
## 19 0.0000000
## 20 0.0000000
## 21 21.6666667
## 22 0.0000000
## 23 0.0000000
## 24 7.9166667
## 25 0.0000000
## 26 0.0000000
# Rename the column names for the newly created dataframe
colnames(Ground_Cover_Dry) <- c("Species", "Chepararia", "Riwo", "Suam")
print(Ground_Cover_Dry)
## Species Chepararia Riwo Suam
## 1 Aristida adoensis 1.2500000 0.0000000 0.0000000
## 2 Aristida adscensionis 2.5000000 4.1666667 1.6666667
## 3 Aristida keniensis 0.4166667 0.0000000 0.0000000
## 4 Bare ground 30.8333333 35.0000000 52.9166667
## 5 Barleria prionitis 0.0000000 0.0000000 0.4166667
## 6 Bothriochloa insculpta 17.5000000 7.9166667 4.1666667
## 7 Brachiaria deflexa 0.0000000 0.0000000 0.8333333
## 8 Cenchrus pennisetiformis 1.2500000 0.0000000 0.0000000
## 9 Chloris pycnothrix 2.5000000 6.6666667 7.0833333
## 10 Chrysopogon plumulosus 2.9166667 0.4166667 0.0000000
## 11 Cynodon dactylon 11.2500000 9.1666667 1.6666667
## 12 Digitaria velutina 0.8333333 0.4166667 0.0000000
## 13 Dung 3.7500000 0.4166667 0.8333333
## 14 Eleusine indica 0.4166667 0.0000000 0.0000000
## 15 Eragrostis ciliaris 0.0000000 0.0000000 0.4166667
## 16 Eragrostis congesta 0.4166667 2.0833333 0.4166667
## 17 Eragrostis superba 1.6666667 0.0000000 0.0000000
## 18 Grewia tenax 0.4166667 0.0000000 0.0000000
## 19 Heteropogon contortus 0.4166667 0.0000000 0.0000000
## 20 Hyperhenia rufa 0.0000000 0.4166667 0.0000000
## 21 Litter 16.6666667 23.3333333 21.6666667
## 22 Microchloa kunthii 0.0000000 2.5000000 0.0000000
## 23 Melinis repens 0.4166667 0.0000000 0.0000000
## 24 Rock 2.9166667 6.2500000 7.9166667
## 25 Sporobolus pyramidalis 1.6666667 0.4166667 0.0000000
## 26 Tetrapogon spathecius 0.0000000 0.8333333 0.0000000
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Ground_Cover_Dry_Long <- Ground_Cover_Dry %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Cover")
print(Ground_Cover_Dry_Long)
## # A tibble: 78 × 3
## Species Wards Cover
## <chr> <chr> <dbl>
## 1 Aristida adoensis Chepararia 1.25
## 2 Aristida adoensis Riwo 0
## 3 Aristida adoensis Suam 0
## 4 Aristida adscensionis Chepararia 2.5
## 5 Aristida adscensionis Riwo 4.17
## 6 Aristida adscensionis Suam 1.67
## 7 Aristida keniensis Chepararia 0.417
## 8 Aristida keniensis Riwo 0
## 9 Aristida keniensis Suam 0
## 10 Bare ground Chepararia 30.8
## # … with 68 more rows
# Anova analysis assess the impact of land use on Grass species composition during the wet season
Anova_Ground_Cover_Dry <- aov (Cover ~ Wards, data = Ground_Cover_Dry_Long)
summary (Anova_Ground_Cover_Dry)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 0 0.00 0 1
## Residuals 75 5998 79.97
#CANOPY COVER
#Canopy Cover - a 10m long tape was being used to sample, on 3 points, in 4 campus directions per sampling point. #10*3*4*2 - for 2 sampling locations = 240m. The total length of the sampling tape per land use study area is 240m.
#Import the Canopy_Wet data set
Canopy_Dry <- read_xlsx("WP_Vegetation.xlsx", sheet = 8)
View(Canopy_Dry)
# Subset the canopy cover data set for shrubs from the Canopy_Dry dataset
Canopy_Shrubs_Dry <- subset(Canopy_Dry, Lifeform == "Shrub",)
view(Canopy_Shrubs_Dry)
# Canopy cover of shrubs in Chepararia during the dry season
sum(Canopy_Shrubs_Dry$Chepararia)
## [1] 7.3
# Total shrub canopy cover in Chepararia during the dry season = ~ 7.3%
Canopy_Shrubs_Dry_Chep <- (Canopy_Shrubs_Dry$Chepararia/7.3)*100
print(Canopy_Shrubs_Dry_Chep)
## [1] 0.000000 0.000000 0.000000 0.000000 12.328767 12.328767 0.000000
## [8] 0.000000 15.068493 0.000000 17.808219 0.000000 0.000000 0.000000
## [15] 0.000000 2.739726 8.219178 0.000000 0.000000 0.000000 0.000000
## [22] 0.000000 16.438356 5.479452 0.000000 9.589041
# Canopy cover of shrubs in Riwo during the dry season
sum(Canopy_Shrubs_Dry$Riwo)
## [1] 50.35
# Total shrub canopy cover in Riwo during the dry season = ~ 50.35%
Canopy_Shrubs_Dry_Riwo <- (Canopy_Shrubs_Dry$Riwo/50.35)*100
print(Canopy_Shrubs_Dry_Riwo)
## [1] 0.0000000 0.0000000 0.3972195 0.1986097 2.5819265 15.0943396
## [7] 19.5630586 0.7944389 0.0000000 0.0000000 0.0000000 4.3694141
## [13] 19.6623635 4.5680238 8.5402185 0.0000000 0.0000000 0.0000000
## [19] 0.0000000 0.5958292 0.0000000 11.9165839 0.0000000 0.0000000
## [25] 11.7179742 0.0000000
# Canopy cover of shrubs in Suam during the dry season
sum(Canopy_Shrubs_Dry$Suam)
## [1] 27.3
# Total shrub canopy cover in Suam during the dry season = ~ 27.3%
Canopy_Shrubs_Dry_Suam <- (Canopy_Shrubs_Dry$Suam/27.3)*100
print(Canopy_Shrubs_Dry_Suam)
## [1] 1.4652015 6.2271062 18.3150183 0.0000000 21.9780220 0.0000000
## [7] 10.9890110 0.0000000 0.0000000 1.0989011 0.0000000 0.0000000
## [13] 18.6813187 0.0000000 0.0000000 1.8315018 0.0000000 3.6630037
## [19] 0.7326007 0.0000000 10.6227106 0.0000000 4.3956044 0.0000000
## [25] 0.0000000 0.0000000
Canopy_Cover_Shrubs_Dry <- data.frame(Canopy_Shrubs_Dry$Species, Canopy_Shrubs_Dry_Chep, Canopy_Shrubs_Dry_Riwo, Canopy_Shrubs_Dry_Suam)
print(Canopy_Cover_Shrubs_Dry)
## Canopy_Shrubs_Dry.Species Canopy_Shrubs_Dry_Chep Canopy_Shrubs_Dry_Riwo
## 1 Aloe vera 0.000000 0.0000000
## 2 Barleria prinites 0.000000 0.0000000
## 3 Caparis Sepiaris/facuraris 0.000000 0.3972195
## 4 Carisa spinarum 0.000000 0.1986097
## 5 Ciccus rotundifolia 12.328767 2.5819265
## 6 Cisfus mucronata 12.328767 15.0943396
## 7 Combretum hereroenes 0.000000 19.5630586
## 8 Euphorbia gospina 0.000000 0.7944389
## 9 Grewia tenax 15.068493 0.0000000
## 10 Grewia tricocarpa 0.000000 0.0000000
## 11 Grewia vilosa 17.808219 0.0000000
## 12 Harissonia abscinica 0.000000 4.3694141
## 13 Hypoestes verticililaris 0.000000 19.6623635
## 14 Ipomea kituensis 0.000000 4.5680238
## 15 Justicia decruptelia 0.000000 8.5402185
## 16 Lantana camara 2.739726 0.0000000
## 17 Leonotis molisma 8.219178 0.0000000
## 18 Maytenus heterophylla 0.000000 0.0000000
## 19 Oncoba spinosa 0.000000 0.0000000
## 20 Omocarpum tricocarpum 0.000000 0.5958292
## 21 Sanseveria herenbergii 0.000000 0.0000000
## 22 Sersia natalensis 0.000000 11.9165839
## 23 Sena ocidentalis 16.438356 0.0000000
## 24 Sena optusifolia 5.479452 0.0000000
## 25 Senna senguiana 0.000000 11.7179742
## 26 Solanum incanum 9.589041 0.0000000
## Canopy_Shrubs_Dry_Suam
## 1 1.4652015
## 2 6.2271062
## 3 18.3150183
## 4 0.0000000
## 5 21.9780220
## 6 0.0000000
## 7 10.9890110
## 8 0.0000000
## 9 0.0000000
## 10 1.0989011
## 11 0.0000000
## 12 0.0000000
## 13 18.6813187
## 14 0.0000000
## 15 0.0000000
## 16 1.8315018
## 17 0.0000000
## 18 3.6630037
## 19 0.7326007
## 20 0.0000000
## 21 10.6227106
## 22 0.0000000
## 23 4.3956044
## 24 0.0000000
## 25 0.0000000
## 26 0.0000000
# Rename the column names for the newly created dataframe
colnames(Canopy_Cover_Shrubs_Dry) <- c ("Shrub Species", "Chepararia", "Riwo", "Suam")
print(Canopy_Cover_Shrubs_Dry)
## Shrub Species Chepararia Riwo Suam
## 1 Aloe vera 0.000000 0.0000000 1.4652015
## 2 Barleria prinites 0.000000 0.0000000 6.2271062
## 3 Caparis Sepiaris/facuraris 0.000000 0.3972195 18.3150183
## 4 Carisa spinarum 0.000000 0.1986097 0.0000000
## 5 Ciccus rotundifolia 12.328767 2.5819265 21.9780220
## 6 Cisfus mucronata 12.328767 15.0943396 0.0000000
## 7 Combretum hereroenes 0.000000 19.5630586 10.9890110
## 8 Euphorbia gospina 0.000000 0.7944389 0.0000000
## 9 Grewia tenax 15.068493 0.0000000 0.0000000
## 10 Grewia tricocarpa 0.000000 0.0000000 1.0989011
## 11 Grewia vilosa 17.808219 0.0000000 0.0000000
## 12 Harissonia abscinica 0.000000 4.3694141 0.0000000
## 13 Hypoestes verticililaris 0.000000 19.6623635 18.6813187
## 14 Ipomea kituensis 0.000000 4.5680238 0.0000000
## 15 Justicia decruptelia 0.000000 8.5402185 0.0000000
## 16 Lantana camara 2.739726 0.0000000 1.8315018
## 17 Leonotis molisma 8.219178 0.0000000 0.0000000
## 18 Maytenus heterophylla 0.000000 0.0000000 3.6630037
## 19 Oncoba spinosa 0.000000 0.0000000 0.7326007
## 20 Omocarpum tricocarpum 0.000000 0.5958292 0.0000000
## 21 Sanseveria herenbergii 0.000000 0.0000000 10.6227106
## 22 Sersia natalensis 0.000000 11.9165839 0.0000000
## 23 Sena ocidentalis 16.438356 0.0000000 4.3956044
## 24 Sena optusifolia 5.479452 0.0000000 0.0000000
## 25 Senna senguiana 0.000000 11.7179742 0.0000000
## 26 Solanum incanum 9.589041 0.0000000 0.0000000
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Canopy_Shrubs_Dry_Long <- Canopy_Cover_Shrubs_Dry %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Canopy")
print(Canopy_Shrubs_Dry_Long)
## # A tibble: 78 × 3
## `Shrub Species` Wards Canopy
## <chr> <chr> <dbl>
## 1 Aloe vera Chepararia 0
## 2 Aloe vera Riwo 0
## 3 Aloe vera Suam 1.47
## 4 Barleria prinites Chepararia 0
## 5 Barleria prinites Riwo 0
## 6 Barleria prinites Suam 6.23
## 7 Caparis Sepiaris/facuraris Chepararia 0
## 8 Caparis Sepiaris/facuraris Riwo 0.397
## 9 Caparis Sepiaris/facuraris Suam 18.3
## 10 Carisa spinarum Chepararia 0
## # … with 68 more rows
# Anova analysis assess the impact of land use on Grass species composition during the wet season
Anova_Canopy_Shrubs_Dry <- aov (Canopy ~ Wards, data = Canopy_Shrubs_Dry_Long)
summary (Anova_Canopy_Shrubs_Dry)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 0 0.00 0 1
## Residuals 75 3039 40.52
# Subset the canopy cover data set for Trees from the Canopy_Dry data set
Canopy_Trees_Dry <- subset(Canopy_Dry, Lifeform == "Tree")
view(Canopy_Trees_Dry)
# Canopy cover of Trees in Chepararia during the dry season
sum(Canopy_Trees_Dry$Chepararia)
## [1] 175.7
# Total shrub canopy cover in Chepararia during the dry season = ~ 175.7%
Canopy_Trees_Dry_Chep <- (Canopy_Trees_Dry$Chepararia/175.7)*100
print(Canopy_Trees_Dry_Chep)
## [1] 0.4553216 14.7410359 3.0165054 5.3500285 5.6346044 6.8867388
## [7] 3.3010814 11.2122937 0.0000000 24.9857712 17.0745589 0.0000000
## [13] 5.6915196 1.5367103 0.0000000 0.1138304 0.0000000 0.0000000
## [19] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
# Canopy cover of Trees in Riwo during the dry season
sum(Canopy_Trees_Dry$Riwo)
## [1] 190.3
# Total shrub canopy cover in Riwo during the dry season = ~ 190.3%
Canopy_Trees_Dry_Riwo <- (Canopy_Trees_Dry$Riwo/190.3)*100
print(Canopy_Trees_Dry_Riwo)
## [1] 0.0000000 0.0000000 0.0000000 5.9379926 26.6946926 0.0000000
## [7] 0.0000000 17.1833946 0.0000000 28.4813452 0.0000000 0.0000000
## [13] 0.0000000 0.0000000 4.0987914 0.0000000 2.2595901 5.2548607
## [19] 5.2548607 0.0000000 0.7882291 0.0000000 4.0462428 0.0000000
# Canopy cover of shrubs in Suam during the dry season
sum(Canopy_Trees_Dry$Suam)
## [1] 188.4
# Total shrub canopy cover in Suam during the dry season = ~ 188.4%
Canopy_Trees_Dry_Suam <- (Canopy_Trees_Dry$Suam/188.4)*100
print(Canopy_Trees_Dry_Suam)
## [1] 0.000000 0.000000 0.000000 14.065817 7.112527 1.486200 18.789809
## [8] 5.307856 8.917197 18.949045 0.000000 2.653928 0.000000 0.000000
## [15] 0.000000 0.000000 0.000000 0.000000 0.000000 6.900212 0.000000
## [22] 6.528662 0.000000 9.288747
Canopy_Cover_Trees_Dry <- data.frame(Canopy_Trees_Dry$Species, Canopy_Trees_Dry_Chep, Canopy_Trees_Dry_Riwo, Canopy_Trees_Dry_Suam)
print(Canopy_Cover_Trees_Dry)
## Canopy_Trees_Dry.Species Canopy_Trees_Dry_Chep Canopy_Trees_Dry_Riwo
## 1 Acacia drepanalobium 0.4553216 0.0000000
## 2 Acacia gerardii 14.7410359 0.0000000
## 3 Acacia lahai 3.0165054 0.0000000
## 4 Acacia mellifera 5.3500285 5.9379926
## 5 Acacia nilotica 5.6346044 26.6946926
## 6 Acacia senegal 6.8867388 0.0000000
## 7 Acacia tortilis 3.3010814 0.0000000
## 8 Albizia amara 11.2122937 17.1833946
## 9 Albizia antialmintica 0.0000000 0.0000000
## 10 Balanites aegyptiaca 24.9857712 28.4813452
## 11 Boscia coriacea 17.0745589 0.0000000
## 12 Boscia salicifolia 0.0000000 0.0000000
## 13 Croton macrostachyus 5.6915196 0.0000000
## 14 Grewia bicolor 1.5367103 0.0000000
## 15 Lannea falva 0.0000000 4.0987914
## 16 Ormocarpum trichocarpum 0.1138304 0.0000000
## 17 Priostigma thognii 0.0000000 2.2595901
## 18 Sclerocaro birrea 0.0000000 5.2548607
## 19 Tamarindus indica 0.0000000 5.2548607
## 20 Taminalia brownii 0.0000000 0.0000000
## 21 Tarminalia prunoides 0.0000000 0.7882291
## 22 Teclea nobilis 0.0000000 0.0000000
## 23 Vangueria infausta 0.0000000 4.0462428
## 24 Zanthoxilium chelybeum 0.0000000 0.0000000
## Canopy_Trees_Dry_Suam
## 1 0.000000
## 2 0.000000
## 3 0.000000
## 4 14.065817
## 5 7.112527
## 6 1.486200
## 7 18.789809
## 8 5.307856
## 9 8.917197
## 10 18.949045
## 11 0.000000
## 12 2.653928
## 13 0.000000
## 14 0.000000
## 15 0.000000
## 16 0.000000
## 17 0.000000
## 18 0.000000
## 19 0.000000
## 20 6.900212
## 21 0.000000
## 22 6.528662
## 23 0.000000
## 24 9.288747
# Rename the column names for the newly created dataframe
colnames(Canopy_Cover_Trees_Dry) <- c ("Tree Species", "Chepararia", "Riwo", "Suam")
print(Canopy_Cover_Trees_Dry)
## Tree Species Chepararia Riwo Suam
## 1 Acacia drepanalobium 0.4553216 0.0000000 0.000000
## 2 Acacia gerardii 14.7410359 0.0000000 0.000000
## 3 Acacia lahai 3.0165054 0.0000000 0.000000
## 4 Acacia mellifera 5.3500285 5.9379926 14.065817
## 5 Acacia nilotica 5.6346044 26.6946926 7.112527
## 6 Acacia senegal 6.8867388 0.0000000 1.486200
## 7 Acacia tortilis 3.3010814 0.0000000 18.789809
## 8 Albizia amara 11.2122937 17.1833946 5.307856
## 9 Albizia antialmintica 0.0000000 0.0000000 8.917197
## 10 Balanites aegyptiaca 24.9857712 28.4813452 18.949045
## 11 Boscia coriacea 17.0745589 0.0000000 0.000000
## 12 Boscia salicifolia 0.0000000 0.0000000 2.653928
## 13 Croton macrostachyus 5.6915196 0.0000000 0.000000
## 14 Grewia bicolor 1.5367103 0.0000000 0.000000
## 15 Lannea falva 0.0000000 4.0987914 0.000000
## 16 Ormocarpum trichocarpum 0.1138304 0.0000000 0.000000
## 17 Priostigma thognii 0.0000000 2.2595901 0.000000
## 18 Sclerocaro birrea 0.0000000 5.2548607 0.000000
## 19 Tamarindus indica 0.0000000 5.2548607 0.000000
## 20 Taminalia brownii 0.0000000 0.0000000 6.900212
## 21 Tarminalia prunoides 0.0000000 0.7882291 0.000000
## 22 Teclea nobilis 0.0000000 0.0000000 6.528662
## 23 Vangueria infausta 0.0000000 4.0462428 0.000000
## 24 Zanthoxilium chelybeum 0.0000000 0.0000000 9.288747
View(Canopy_Cover_Trees_Dry)
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Canopy_Trees_Dry_Long <- Canopy_Cover_Trees_Dry %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Canopy")
print(Canopy_Trees_Dry_Long)
## # A tibble: 72 × 3
## `Tree Species` Wards Canopy
## <chr> <chr> <dbl>
## 1 Acacia drepanalobium Chepararia 0.455
## 2 Acacia drepanalobium Riwo 0
## 3 Acacia drepanalobium Suam 0
## 4 Acacia gerardii Chepararia 14.7
## 5 Acacia gerardii Riwo 0
## 6 Acacia gerardii Suam 0
## 7 Acacia lahai Chepararia 3.02
## 8 Acacia lahai Riwo 0
## 9 Acacia lahai Suam 0
## 10 Acacia mellifera Chepararia 5.35
## # … with 62 more rows
# Anova analysis assess the impact of land use on tree canopy cover during the Dry season
Anova_Canopy_Trees_Dry <- aov (Canopy ~ Wards, data = Canopy_Trees_Dry_Long)
summary (Anova_Canopy_Trees_Dry)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 0 0.0 0 1
## Residuals 69 3374 48.9
# DRY SEASON BIOMASS PRODUCTION
#Import the biomass dataset
Biomass_Dry <- read_xlsx("WP_Vegetation.xlsx", sheet = 10)
view(Biomass_Dry)
Biomass_Dry <- Biomass_Dry %>%
slice(1:3)
View(Biomass_Dry)
Biomass_Dry_Chep <- (Biomass_Dry$Chepararia/2)
print(Biomass_Dry_Chep)
## [1] 15.0 2.5 17.5
Biomass_Dry_Riwo <- (Biomass_Dry$Riwo/2)
print(Biomass_Dry_Riwo)
## [1] 0 0 0
Biomass_Dry_Suam <- (Biomass_Dry$Suam/2)
print(Biomass_Dry_Suam)
## [1] 0 0 0
Biomass_Prod_Dry <- data.frame (Biomass_Dry$Lifeform,Biomass_Dry_Chep, Biomass_Dry_Riwo, Biomass_Dry_Suam)
print(Biomass_Prod_Dry)
## Biomass_Dry.Lifeform Biomass_Dry_Chep Biomass_Dry_Riwo Biomass_Dry_Suam
## 1 Grasses 15.0 0 0
## 2 Forbs 2.5 0 0
## 3 Total Biomass 17.5 0 0
#To then approximate biomass production in tonnes per hectare, the sample weights will be divided by the area of the quadrat (0.25) then multiplied by 10,000m2 to convert to hectares, then divided by 1,000,000 to convert to tonnes - giving weight in tonnes/ha
Biomass_Dry_Chep <- ((Biomass_Prod_Dry$Biomass_Dry_Chep/0.25 *10000)/1000000)
print(Biomass_Dry_Chep)
## [1] 0.6 0.1 0.7
Biomass_Dry_Riwo <- ((Biomass_Prod_Dry$Biomass_Dry_Riwo/0.25*10000)/1000000)
print(Biomass_Dry_Riwo)
## [1] 0 0 0
Biomass_Dry_Suam <- ((Biomass_Prod_Dry$Biomass_Dry_Suam/0.25*10000)/1000000)
print(Biomass_Dry_Suam)
## [1] 0 0 0
Biomass_Dry_WP <- data.frame(Lifeform <- c("Grasses", "Forbs", "Total Biomass"), Biomass_Dry_Chep, Biomass_Dry_Riwo, Biomass_Dry_Suam)
print(Biomass_Dry_WP)
## Lifeform....c..Grasses....Forbs....Total.Biomass.. Biomass_Dry_Chep
## 1 Grasses 0.6
## 2 Forbs 0.1
## 3 Total Biomass 0.7
## Biomass_Dry_Riwo Biomass_Dry_Suam
## 1 0 0
## 2 0 0
## 3 0 0
# Rename the column names for the newly created data frame
colnames(Biomass_Dry_WP) <- c ("Lifeform", "Chepararia", "Riwo", "Suam")
print(Biomass_Dry_WP)
## Lifeform Chepararia Riwo Suam
## 1 Grasses 0.6 0 0
## 2 Forbs 0.1 0 0
## 3 Total Biomass 0.7 0 0
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Biomass_Dry_WP_Long <- Biomass_Prod_Dry %>%
pivot_longer(cols = c(2:4), names_to = "Wards", values_to = "Biomass")
print(Biomass_Dry_WP_Long)
## # A tibble: 9 × 3
## Biomass_Dry.Lifeform Wards Biomass
## <chr> <chr> <dbl>
## 1 Grasses Biomass_Dry_Chep 15
## 2 Grasses Biomass_Dry_Riwo 0
## 3 Grasses Biomass_Dry_Suam 0
## 4 Forbs Biomass_Dry_Chep 2.5
## 5 Forbs Biomass_Dry_Riwo 0
## 6 Forbs Biomass_Dry_Suam 0
## 7 Total Biomass Biomass_Dry_Chep 17.5
## 8 Total Biomass Biomass_Dry_Riwo 0
## 9 Total Biomass Biomass_Dry_Suam 0
# Anova analysis assess the impact of land use on Biomass production during the Dry season
Anova_Biomass_Dry_WP <- aov (Biomass ~ Wards, data = Biomass_Dry_WP_Long)
summary (Anova_Biomass_Dry_WP)
## Df Sum Sq Mean Sq F value Pr(>F)
## Wards 2 272.2 136.11 6.323 0.0333 *
## Residuals 6 129.2 21.53
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# C. TESTING IF SEASONALITY HAS A SIGNIFICANT EFFECT ON THE VARIOUS VEGETATION ATTRIBUTES
# C.1. SPECIES DIVERSITY
# C.1.a. CHEPARARIA - AGROPASTORAL LAND USE SYSTEM
Chepararia_Diversity <- data.frame(Lifeforms, Diversity_Wet_Chepararia, Diversity_Dry_Chepararia)
print(Chepararia_Diversity)
## Lifeforms Diversity_Wet_Chepararia Diversity_Dry_Chepararia
## 1 Grasses 2.027927 1.629261
## 2 Forbs 1.910521 1.406851
## 3 Shrubs 2.352299 2.604089
## 4 Trees 2.475307 2.584102
# Rename the column names for the newly created dataframe
colnames(Chepararia_Diversity) <- c ("Lifeforms", "Wet", "Dry")
print(Chepararia_Diversity)
## Lifeforms Wet Dry
## 1 Grasses 2.027927 1.629261
## 2 Forbs 1.910521 1.406851
## 3 Shrubs 2.352299 2.604089
## 4 Trees 2.475307 2.584102
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Chepararia_Diversity_Long <- Chepararia_Diversity %>%
pivot_longer(cols = c(2,3), names_to = "Seasons", values_to = "Diversity")
print(Chepararia_Diversity_Long)
## # A tibble: 8 × 3
## Lifeforms Seasons Diversity
## <chr> <chr> <dbl>
## 1 Grasses Wet 2.03
## 2 Grasses Dry 1.63
## 3 Forbs Wet 1.91
## 4 Forbs Dry 1.41
## 5 Shrubs Wet 2.35
## 6 Shrubs Dry 2.60
## 7 Trees Wet 2.48
## 8 Trees Dry 2.58
# Anova analysis assess the impact of land use on Biomass production during the Dry season
Anova_Chepararia_Diversity <- aov (Diversity ~ Seasons, data = Chepararia_Diversity_Long)
summary (Anova_Chepararia_Diversity)
## Df Sum Sq Mean Sq F value Pr(>F)
## Seasons 1 0.0367 0.03669 0.158 0.705
## Residuals 6 1.3949 0.23248
# C.1.b RIWO - SEMI-TRANSHUMANCE LAND USE SYSTEM
Riwo_Diversity <- data.frame(Lifeforms, Diversity_Wet_Riwo, Diversity_Dry_Riwo)
print(Riwo_Diversity)
## Lifeforms Diversity_Wet_Riwo Diversity_Dry_Riwo
## 1 Grasses 2.328463 1.479434
## 2 Forbs 2.276369 0.840778
## 3 Shrubs 2.118296 1.222082
## 4 Trees 2.365646 1.541546
# Rename the column names for the newly created data frame
colnames(Riwo_Diversity) <- c ("Lifeforms", "Wet", "Dry")
print(Riwo_Diversity)
## Lifeforms Wet Dry
## 1 Grasses 2.328463 1.479434
## 2 Forbs 2.276369 0.840778
## 3 Shrubs 2.118296 1.222082
## 4 Trees 2.365646 1.541546
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Riwo_Diversity_Long <- Riwo_Diversity %>%
pivot_longer(cols = c(2,3), names_to = "Seasons", values_to = "Diversity")
print(Riwo_Diversity_Long)
## # A tibble: 8 × 3
## Lifeforms Seasons Diversity
## <chr> <chr> <dbl>
## 1 Grasses Wet 2.33
## 2 Grasses Dry 1.48
## 3 Forbs Wet 2.28
## 4 Forbs Dry 0.841
## 5 Shrubs Wet 2.12
## 6 Shrubs Dry 1.22
## 7 Trees Wet 2.37
## 8 Trees Dry 1.54
# Anova analysis assess the impact of land use on Biomass production during the Dry season
Anova_Riwo_Diversity <- aov (Diversity ~ Seasons, data = Riwo_Diversity_Long)
summary (Anova_Riwo_Diversity)
## Df Sum Sq Mean Sq F value Pr(>F)
## Seasons 1 2.0049 2.0049 35.41 0.00101 **
## Residuals 6 0.3397 0.0566
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# C.1.c SUAM - PASTORAL LAND USE SYSTEM
Suam_Diversity <- data.frame(Lifeforms, Diversity_Wet_Suam, Diversity_Dry_Suam)
print(Suam_Diversity)
## Lifeforms Diversity_Wet_Suam Diversity_Dry_Suam
## 1 Grasses 1.800271 1.235784
## 2 Forbs 1.577628 1.427361
## 3 Shrubs 2.434486 2.141341
## 4 Trees 2.148001 1.853440
# Rename the column names for the newly created data frame
colnames(Suam_Diversity) <- c ("Lifeforms", "Wet", "Dry")
print(Suam_Diversity)
## Lifeforms Wet Dry
## 1 Grasses 1.800271 1.235784
## 2 Forbs 1.577628 1.427361
## 3 Shrubs 2.434486 2.141341
## 4 Trees 2.148001 1.853440
# Reshape the data into long format suitable for ANOVA using the pivot_longer function on the tidyr package
Suam_Diversity_Long <- Suam_Diversity %>%
pivot_longer(cols = c(2,3), names_to = "Seasons", values_to = "Diversity")
print(Suam_Diversity_Long)
## # A tibble: 8 × 3
## Lifeforms Seasons Diversity
## <chr> <chr> <dbl>
## 1 Grasses Wet 1.80
## 2 Grasses Dry 1.24
## 3 Forbs Wet 1.58
## 4 Forbs Dry 1.43
## 5 Shrubs Wet 2.43
## 6 Shrubs Dry 2.14
## 7 Trees Wet 2.15
## 8 Trees Dry 1.85
# Anova analysis assess the impact of land use on Biomass production during the Dry season
Anova_Suam_Diversity <- aov (Diversity ~ Seasons, data = Suam_Diversity_Long)
summary (Anova_Suam_Diversity)
## Df Sum Sq Mean Sq F value Pr(>F)
## Seasons 1 0.2121 0.2120 1.366 0.287
## Residuals 6 0.9317 0.1553
# C.2. DENSITY
# C.2.a CHEPARARIA - AGROPASTORAL LAND USE SYSTEM
Chepararia_Density_Wet <- data.frame (Grasses_Wet$Species, Density_Grasses_Wet_Chep)
print(Chepararia_Density_Wet)
## Grasses_Wet.Species Density_Grasses_Wet_Chep
## 1 Aristida adoensis 1080000
## 2 Aristida adscensionis 2040000
## 3 Bothriocloa insculpta 6320000
## 4 Brachiaria deflexa 0
## 5 Cenchrus setigerus 0
## 6 Chloris pycnothrix 240000
## 7 Chloris roxburghiana 40000
## 8 Cymbopogon pospischilii 40000
## 9 Cynodon dactylon 3720000
## 10 Cyperus rotundus 0
## 11 Dactyloctenium aegyptium 560000
## 12 Digitaria velutina 1120000
## 13 Echinochloa stagnina 160000
## 14 Eleusine indica 1040000
## 15 Eragrostis brownii 0
## 16 Eragrostis congesta 0
## 17 Eragrostis superba 240000
## 18 Harpachne schimperi 0
## 19 Heteropogon contortus 40000
## 20 Hyparrhenia lintonii 160000
## 21 Melinis minutiflora 1480000
## 22 Melinis repens 240000
## 23 Setaria verticillata 0
## 24 Sporobolus pyramidalis 0
colnames(Chepararia_Density_Wet) <- c ("Species", "Density")
print(Chepararia_Density_Wet)
## Species Density
## 1 Aristida adoensis 1080000
## 2 Aristida adscensionis 2040000
## 3 Bothriocloa insculpta 6320000
## 4 Brachiaria deflexa 0
## 5 Cenchrus setigerus 0
## 6 Chloris pycnothrix 240000
## 7 Chloris roxburghiana 40000
## 8 Cymbopogon pospischilii 40000
## 9 Cynodon dactylon 3720000
## 10 Cyperus rotundus 0
## 11 Dactyloctenium aegyptium 560000
## 12 Digitaria velutina 1120000
## 13 Echinochloa stagnina 160000
## 14 Eleusine indica 1040000
## 15 Eragrostis brownii 0
## 16 Eragrostis congesta 0
## 17 Eragrostis superba 240000
## 18 Harpachne schimperi 0
## 19 Heteropogon contortus 40000
## 20 Hyparrhenia lintonii 160000
## 21 Melinis minutiflora 1480000
## 22 Melinis repens 240000
## 23 Setaria verticillata 0
## 24 Sporobolus pyramidalis 0
Chepararia_Density_Dry <- data.frame(Grasses_Dry$Species, Density_Grasses_Dry_Chep)
print(Chepararia_Density_Dry)
## Grasses_Dry.Species Density_Grasses_Dry_Chep
## 1 Aristida adoensis 120000
## 2 Aristida adonseniensis 160000
## 3 Aristida keniensis 40000
## 4 Bothriochloa insculpta 6120000
## 5 Brachiaria deflexa 0
## 6 Cenchrus pennisetiformis 120000
## 7 Chloris pycnothrix 1160000
## 8 Chrysopogon plumulosus 880000
## 9 Cynodon dactylon 2480000
## 10 Digitaria velutina 80000
## 11 Eleusine indica 40000
## 12 Eragrostis ciliaris 0
## 13 Eragrostis congesta 0
## 14 Eragrostis superba 40000
## 15 Harpachne schimperi 0
## 16 Heteropogon contortus 2200000
## 17 Microcloa kunthi 0
## 18 Melinis repens 80000
## 19 Sporobolus pyramidalis 80000
## 20 Tetrapogon spathecius 0
colnames(Chepararia_Density_Dry) <- c ("Species", "Density")
Chepararia_Density <- merge(Chepararia_Density_Wet, Chepararia_Density_Dry, by = "Species", all = TRUE, na.rm = TRUE)
print(Chepararia_Density)
## Species Density.x Density.y
## 1 Aristida adoensis 1080000 120000
## 2 Aristida adonseniensis NA 160000
## 3 Aristida adscensionis 2040000 NA
## 4 Aristida keniensis NA 40000
## 5 Bothriochloa insculpta NA 6120000
## 6 Bothriocloa insculpta 6320000 NA
## 7 Brachiaria deflexa 0 0
## 8 Cenchrus pennisetiformis NA 120000
## 9 Cenchrus setigerus 0 NA
## 10 Chloris pycnothrix 240000 1160000
## 11 Chloris roxburghiana 40000 NA
## 12 Chrysopogon plumulosus NA 880000
## 13 Cymbopogon pospischilii 40000 NA
## 14 Cynodon dactylon 3720000 2480000
## 15 Cyperus rotundus 0 NA
## 16 Dactyloctenium aegyptium 560000 NA
## 17 Digitaria velutina 1120000 80000
## 18 Echinochloa stagnina 160000 NA
## 19 Eleusine indica 1040000 40000
## 20 Eragrostis brownii 0 NA
## 21 Eragrostis ciliaris NA 0
## 22 Eragrostis congesta 0 0
## 23 Eragrostis superba 240000 40000
## 24 Harpachne schimperi 0 0
## 25 Heteropogon contortus 40000 2200000
## 26 Hyparrhenia lintonii 160000 NA
## 27 Melinis minutiflora 1480000 NA
## 28 Melinis repens 240000 80000
## 29 Microcloa kunthi NA 0
## 30 Setaria verticillata 0 NA
## 31 Sporobolus pyramidalis 0 80000
## 32 Tetrapogon spathecius NA 0
view(Chepararia_Density)