Analysis for Ossanna & Gornish (2022), “Efficacy of labile carbon addition to reduce fast-growing, invasive non-native plants: A review and meta-analysis”, Journal of Applied Ecology.
exp_ID).
library(tidyverse)
# Load data ---------------------------------------------------------------
review <- read.csv("data/raw/Table-S1_review.csv")
bio <- review %>%
filter(!is.na(biome)) %>%
count(biome)
bio <- bio %>%
mutate(perc = n / sum(bio$n) * 100)
bio
## # A tibble: 27 x 3
## biome n perc
## <chr> <int> <dbl>
## 1 coastal grassland 4 5.26
## 2 coastal sage scrub 2 2.63
## 3 coastal sandplain grassland 1 1.32
## 4 cold desert 1 1.32
## 5 creosote scrub 2 2.63
## 6 fescue prairie 1 1.32
## 7 fynbos 2 2.63
## 8 grassy woodland 9 11.8
## 9 gulf coastal prairie 1 1.32
## 10 Idaho fescue/bluebunch wheatgrass 2 2.63
## # ... with 17 more rows
reg <- review %>%
filter(!is.na(region)) %>%
count(region)
reg <- reg %>%
mutate(perc = n / sum(reg$n) * 100)
reg
## # A tibble: 15 x 3
## region n perc
## <chr> <int> <dbl>
## 1 central Canada 6 7.23
## 2 coastal CA, USA 8 9.64
## 3 Europe 3 3.61
## 4 Great Basin, USA 11 13.3
## 5 Great Plains, USA 5 6.02
## 6 Gulf of Mexico, USA 1 1.20
## 7 HI, USA 3 3.61
## 8 Himalaya 1 1.20
## 9 Midwest, USA 9 10.8
## 10 northeast USA 2 2.41
## 11 Pacific Northwest, USA 8 9.64
## 12 Rocky Mountains, USA 12 14.5
## 13 South Africa 2 2.41
## 14 southeast Australia 10 12.0
## 15 southwest USA 2 2.41
# Just USA
reg.usa <- reg %>%
filter(str_detect(region, "USA"))
sum(reg.usa$n)
## [1] 61
sum(reg.usa$perc)
## [1] 73.49398
summary(review$dur, na.rm = TRUE)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 3.0 14.0 20.0 30.6 32.0 266.0 2
hist(review$dur, breaks = 40)
# To better see first part of histogram
dur.majority <- review %>%
filter(dur < 60)
hist(dur.majority$dur, breaks = 20)
# Combine counts of studies that tested multiple C types
ctypa.s <- review %>%
filter(ctypm == "single") %>%
count(ctyp1)
ctypa.m <- review %>%
filter(ctypm == "multiple") %>%
select(ctyp2, ctyp3, ctyp4) %>%
pivot_longer(everything(), names_to = "col", values_to = "ctyp1") %>%
filter(!is.na(ctyp1)) %>%
select(ctyp1) %>%
count(ctyp1)
ctypa.int <- intersect(ctypa.s$ctyp1, ctypa.m$ctyp1)
ctypa.add.s <- ctypa.s %>%
filter(ctyp1 %in% ctypa.int) %>%
select(order(colnames(.)))
ctypa.add.m <- ctypa.m %>%
filter(ctyp1 %in% ctypa.int) %>%
select(order(colnames(.))) %>%
mutate(n2 = ctypa.add.s$n) %>%
select(-ctyp1) %>%
mutate(n = n + n2) %>%
select(-n2)
ctypa.add.s <- ctypa.add.s[ , -2]
ctypa.add.s <- cbind(ctypa.add.s, ctypa.add.m)
ctypa.s <- ctypa.s %>%
filter(!ctyp1 %in% ctypa.int)
ctypa <- rbind(ctypa.add.s, ctypa.s)
rm(ctypa.add.m, ctypa.add.s, ctypa.m, ctypa.s, ctypa.int)
# Percentages
ctypa <- ctypa %>%
mutate(perc = n / sum(ctypa$n) * 100)
ctypa
## ctyp1 n perc
## 1 activated carbon 2 2.409639
## 2 mulch 2 2.409639
## 3 sawdust 19 22.891566
## 4 straw 2 2.409639
## 5 sucrose 42 50.602410
## 6 sucrose AND sawdust 11 13.253012
## 7 woodchip 2 2.409639
## 8 dextrose 1 1.204819
## 9 wood mulch 1 1.204819
## 10 woodchip mulch 1 1.204819
ctypm <- review %>%
filter(!is.na(ctypm)) %>%
count(ctypm)
ctypm.sum <- sum(ctypm["n"])
ctypm <- ctypm %>%
mutate(perc = n / ctypm.sum * 100)
ctypm
## # A tibble: 2 x 3
## ctypm n perc
## <chr> <int> <dbl>
## 1 multiple 6 7.41
## 2 single 75 92.6
Averaged when paper tested multiple C rates.
cratav.na <- review %>%
filter(!is.na(cratav))
summary(cratav.na$cratav)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 21.0 176.5 420.0 590.7 630.0 4191.6
hist(cratav.na$cratav, breaks = 40)
# To better see first part of histogram
cratav.majority <- cratav.na %>%
filter(cratav < 1000)
hist(cratav.majority$cratav, breaks = 30)
Percent of papers that tested multiple C rates:
cratm <- review %>%
filter(!is.na(cratm)) %>%
count(cratm)
cratm.sum <- sum(cratm["n"])
cratm <- cratm %>%
mutate(perc = n / cratm.sum * 100)
cratm[10, ]
## # A tibble: 1 x 3
## cratm n perc
## <chr> <int> <dbl>
## 1 single 64 83.1
capr <- review %>%
filter(!is.na(capr)) %>%
count(capr)
capr.sum <- sum(capr["n"])
capr <- capr %>%
mutate(perc = n / capr.sum * 100)
capr
## # A tibble: 2 x 3
## capr n perc
## <chr> <int> <dbl>
## 1 1 25 30.1
## 2 reapplied 58 69.9
# Combine counts of studies that tested multiple treatments
mtrt.s <- review %>%
filter(mtrtn == 1) %>%
count(mtrt1)
mtrt.m <- review %>%
filter(mtrtn != 1) %>%
select(mtrt2, mtrt3) %>%
pivot_longer(everything(), names_to = "col", values_to = "mtrt1") %>%
filter(!is.na(mtrt1)) %>%
select(mtrt1) %>%
count(mtrt1)
mtrt.int <- intersect(mtrt.s$mtrt1, mtrt.m$mtrt1)
mtrt.add.s <- mtrt.s %>%
filter(mtrt1 %in% mtrt.int) %>%
select(order(colnames(.)))
mtrt.add.m <- mtrt.m %>%
filter(mtrt1 %in% mtrt.int) %>%
select(order(colnames(.))) %>%
mutate(n2 = mtrt.add.s$n) %>%
select(-mtrt1) %>%
mutate(n = n + n2) %>%
select(-n2)
mtrt.add.s <- mtrt.add.s[ , -2]
mtrt.add.s <- cbind(mtrt.add.s, mtrt.add.m)
mtrt.s <- mtrt.s %>%
filter(!mtrt1 %in% mtrt.int)
mtrt <- rbind(mtrt.add.s, mtrt.s)
rm(mtrt.add.m, mtrt.add.s, mtrt.m, mtrt.s, mtrt.int)
mtrt <- mtrt %>%
mutate(perc = n / sum(mtrt$n) * 100)
mtrt
## mtrt1 n perc
## 1 burn 11 24.444444
## 2 native seeded 13 28.888889
## 3 water manipulation 4 8.888889
## 4 cutting 2 4.444444
## 5 fertilizer 2 4.444444
## 6 grazing 2 4.444444
## 7 hand-pulling 2 4.444444
## 8 litter removal 1 2.222222
## 9 soil amendment 3 6.666667
## 10 tilling 5 11.111111
mtrt.absolute <- mtrt %>%
mutate(perc = n / dim(review)[1] * 100)
mtrt.absolute
## mtrt1 n perc
## 1 burn 11 13.253012
## 2 native seeded 13 15.662651
## 3 water manipulation 4 4.819277
## 4 cutting 2 2.409639
## 5 fertilizer 2 2.409639
## 6 grazing 2 2.409639
## 7 hand-pulling 2 2.409639
## 8 litter removal 1 1.204819
## 9 soil amendment 3 3.614458
## 10 tilling 5 6.024096
mtrtn <- review %>%
filter(!is.na(mtrtn)) %>%
count(mtrtn)
mtrtn.sum <- sum(mtrtn["n"])
mtrtn <- mtrtn %>%
mutate(perc = n / mtrtn.sum * 100)
mtrtn
## # A tibble: 4 x 3
## mtrtn n perc
## <dbl> <int> <dbl>
## 1 0 31 37.3
## 2 1 33 39.8
## 3 2 15 18.1
## 4 3 4 4.82
cost <- review %>%
filter(!is.na(cost)) %>%
count(cost)
cost.sum <- sum(cost["n"])
cost <- cost %>%
mutate(perc = n / cost.sum * 100)
cost
## # A tibble: 4 x 3
## cost n perc
## <chr> <int> <dbl>
## 1 absent 51 61.4
## 2 discussed 9 10.8
## 3 mentioned briefly 18 21.7
## 4 numbers 5 6.02
plot.na <- review %>%
filter(!str_detect(plot, "not")) %>%
mutate(plot = round(as.numeric(plot), 2))
summary(plot.na$plot)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.01 1.50 4.00 27.23 25.00 350.00
hist(plot.na$plot, breaks = 30)
# To better see first part of histogram
plot.majority <- plot.na %>%
filter(plot < 30)
hist(plot.majority$plot, breaks = 20)
peer <- review %>%
count(peer)
peer.sum <- sum(peer["n"])
peer <- peer %>%
mutate(perc = n / peer.sum * 100)
peer
## # A tibble: 5 x 3
## peer n perc
## <chr> <int> <dbl>
## 1 conference 1 1.20
## 2 dissertation 3 3.61
## 3 peer-reviewed 63 75.9
## 4 technical report 5 6.02
## 5 thesis 11 13.3