Site Types

When completing point count surveys, observers classified the surrounding habitat into one of five site types:


Observers surveyed 191 points in total during the eight week survey period. The number of points surveyed in each site type are as follows:


Let’s explore the similarities and differences among the site types.

Vegetation Characteristics

First, let’s explore how the vegetation looked at each site. Observers conducted vegetation surveys at each point count location, measuring a variety of vegetation characters such as vegetation height, density, litter depth, ground cover, and percent cover.

table_site_veg <- combined.grassland %>%
  select(site_type, veg_ht_avg, vd_vo, litter_avg, pc_woody, pc_grass) %>% #retain variables used in summaries
  tbl_summary(by = site_type,
              missing = "no", # remove missing values (NAs). "ifany" will include a missing values row in table.
              digits = all_continuous() ~ 1, #number of displayed digits for continuous variables
              label = list(veg_ht_avg ~ "Vegetation Height (cm)", #change column labels in table
                           vd_vo ~ "Visual Observation (cm)",
                           litter_avg ~ "Litter Depth (cm)",
                           pc_woody ~ "Percent Woody Cover",
                           pc_grass ~ "Percent Grass Cover"),
              statistic = list(all_continuous() ~ "{mean} ({sd})", #can use any character for parentheses
                               all_categorical() ~ "{n}")) %>% #count obs. for categorical variables
  add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>% #number of digits displayed for p-values
  modify_caption("Table 1. The vegetation characeristics of the types of sites.") %>%
  modify_header(update = all_stat_cols() ~ "**{level}**") #headers to only contain site names
table_site_veg %>% 
  modify_header(label = '') %>%
  as_gt() %>% 
  opt_stylize(style = 6, color = 'green') %>%
  opt_align_table_header(align = "left") %>%
  tab_options(heading.align = "left")
Table 1. The vegetation characeristics of the types of sites.
Crop1 Grassland1 Hay/Pasture1 Savannah1 Shrub1 p-value2
Vegetation Height (cm) 33.8 (32.2) 59.1 (28.7) 48.4 (31.3) 55.8 (15.3) 74.2 (30.3) <0.001
Visual Observation (cm) 20.6 (17.5) 39.3 (27.0) 18.1 (9.4) 28.4 (13.7) 55.4 (32.5) <0.001
Litter Depth (cm) 0.5 (0.7) 1.5 (1.7) 4.0 (4.8) 1.4 (0.9) 1.8 (1.6) <0.001
Percent Woody Cover 0.0 (0.0) 1.8 (4.4) 0.0 (0.0) 9.8 (11.4) 15.5 (15.2) <0.001
Percent Grass Cover 42.1 (38.8) 64.5 (29.3) 63.8 (39.9) 72.5 (25.6) 59.5 (28.0) 0.004
1 Mean (SD)
2 Kruskal-Wallis rank sum test

Site Level Characteristics

Next, let’s examine the patch-level characteristics of each site type.

table_site_patch <- combined.grassland %>%
  select(site_type, site_ha, site_pa_ratio) %>% #retain variables used in summaries
  tbl_summary(by = site_type,
              missing = "no", # remove missing values (NAs). "ifany" will include a missing values row in table.
              digits = all_continuous() ~ 1, #number of displayed digits for continuous variables
              label = list(site_ha ~ "Site Size (ha)", #change column labels in table
                           site_pa_ratio ~ "Site Perimeter-Area Ratio"),
              statistic = list(all_continuous() ~ "{mean} ({sd})", #can use any character for parentheses
                               all_categorical() ~ "{n}")) %>% #count obs. for categorical variables
  add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>% #number of digits displayed for p-values
  modify_caption("Table 2. The patch-level characteristics of the types of sites.") %>%
  modify_header(update = all_stat_cols() ~ "**{level}**") #headers to only contain site names
table_site_patch %>% 
  modify_header(label = '') %>%
  as_gt() %>% 
  opt_stylize(style = 6, color = 'green') %>%
  opt_align_table_header(align = "left") %>%
  tab_options(heading.align = "left")
Table 2. The patch-level characteristics of the types of sites.
Crop1 Grassland1 Hay/Pasture1 Savannah1 Shrub1 p-value2
Site Size (ha) 29.8 (9.2) 79.5 (84.2) 37.5 (13.2) 75.7 (83.9) 92.5 (91.9) <0.001
Site Perimeter-Area Ratio 102.5 (24.5) 132.9 (53.6) 91.3 (29.5) 125.4 (39.6) 137.8 (41.0) <0.001
1 Mean (SD)
2 Kruskal-Wallis rank sum test


How did the size of the sites vary overall?

Bird Diversity

Lastly, let’s explore how the bird diversity differs among site types.

Species found in grasslands starting at top left going clockwise: yellow-breasted chat, northern bobwhite, dickcissel, common yellowthroat, indigo bunting, and prairie warbler.
Species found in grasslands starting at top left going clockwise: yellow-breasted chat, northern bobwhite, dickcissel, common yellowthroat, indigo bunting, and prairie warbler.


table_bird_diversity <- combined.grassland %>%
  select(site_type, richness, COYE, DICK, INBU, NOBO, PRAW, YBCH) %>% #retain variables used in summaries
  tbl_summary(by = site_type,
              type = list(c(richness, INBU, DICK, COYE, NOBO, PRAW, YBCH) ~ "continuous"),
              missing = "no", # remove missing values (NAs). "ifany" will include a missing values row in table.
              digits = all_continuous() ~ 1, #number of displayed digits for continuous variables
              label = list(richness ~ "Species Richness", #change column labels in table
                COYE ~ "Common Yellowthroat", DICK ~ "Dickcissel", INBU ~ "Indigo Bunting", NOBO ~ "Northern Bobwhite", 
                PRAW ~ "Prairie Warbler", YBCH ~ "Yellow-breasted Chat"
                           ),
              statistic = list(all_continuous() ~ "{mean} ({sd})", #can use any character for parentheses
                               all_categorical() ~ "{n}")) %>% #count obs. for categorical variables
  add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>% #number of digits displayed for p-values
  modify_caption("Table 3. The bird diversity at different site types.") %>%
  modify_header(update = all_stat_cols() ~ "**{level}**") #headers to only contain site names
table_bird_diversity %>% 
  modify_header(label = 'Number per Point') %>%
  as_gt() %>% 
  opt_stylize(style = 6, color = 'blue') %>%
  opt_align_table_header(align = "left") %>%
  tab_options(heading.align = "left")
Table 3. The bird diversity at different site types.
Number per Point Crop1 Grassland1 Hay/Pasture1 Savannah1 Shrub1 p-value2
Species Richness 2.0 (1.6) 3.3 (1.6) 1.4 (1.4) 3.3 (1.2) 4.1 (1.3) <0.001
Common Yellowthroat 0.5 (0.8) 0.9 (0.9) 0.3 (0.5) 1.0 (1.1) 1.1 (0.8) <0.001
Dickcissel 0.2 (0.5) 0.9 (1.4) 0.0 (0.0) 0.5 (1.3) 0.6 (1.2) 0.005
Indigo Bunting 0.8 (1.0) 0.9 (0.9) 1.0 (0.9) 0.9 (0.7) 1.0 (0.8) 0.31
Northern Bobwhite 0.0 (0.0) 0.1 (0.4) 0.0 (0.0) 0.1 (0.3) 0.1 (0.4) 0.069
Prairie Warbler 0.0 (0.2) 0.1 (0.4) 0.0 (0.0) 0.5 (0.7) 0.5 (0.8) <0.001
Yellow-breasted Chat 0.4 (0.6) 0.5 (0.7) 0.3 (0.5) 0.7 (0.9) 1.0 (0.8) <0.001
1 Mean (SD)
2 Kruskal-Wallis rank sum test



Let’s explore different ways of viewing how species richness differs among sites.