| Title: | Educational Datasets for Ecology and Agriculture |
|---|---|
| Description: | A collection of curated educational datasets for teaching ecology and agriculture concepts. Includes data on wildlife monitoring, plant treatments, and ecological observations with documentation and examples for educational use. All datasets are derived from published scientific studies and are available under CC0 or compatible licenses. |
| Authors: | W. Edwin Harris [aut, cre, cph] |
| Maintainer: | W. Edwin Harris <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.1.0 |
| Built: | 2026-05-26 09:16:51 UTC |
| Source: | https://github.com/weharris/ecoteach |
A collection of curated educational datasets for teaching ecology and agriculture concepts. The package provides clean, well-documented datasets that can be used for teaching data analysis, statistics, and ecological concepts in classroom settings. Each dataset includes comprehensive documentation and examples of potential analyses.
The package includes the following datasets:
badger_energy: Energy expenditure data for European badgers with tuberculosis
barnswallow_brightness: Plumage brightness data for barn swallows
berberis_treatment: Data on invasive Berberis management treatments
carrion_arrivals: Vertebrate scavenger visits to roe deer carrion
chimpanzee_cameras: Camera trap detection data for wild chimpanzees
dormouse_hibernation: Hibernation and reproduction data for edible dormice
Dsimulans_matechoice: Mate copying data for fruit flies
elephant_farmers: Agricultural use metrics for elephants
leafcutter_disturbance: Leaf-cutting ant herbivory under human disturbance
lion_reproduction: Reproductive data for Galapagos sea lions
magellanic_penguins: Long-term monitoring data on Magellanic penguins
pangolin_habitat: Habitat occupancy data for Chinese pangolins
raccoondog_environment: Raccoon dog activity and environmental factors in China
redpanda_moves: Movement patterns and weather effects on red pandas
scavenger_community: Scavenger community structure along environmental gradients
shark_fishing: Shark mortality predictions from fishing operations
vulture_diet: Diet composition analysis of African vultures
whale_brains: Brain size evolution data for cetaceans
wren_noise: Southern house wren song response to noise and territorial intrusion
All datasets are provided in tidy format, with factors appropriately coded, and include proper citation information. The package aims to make it easy for instructors to incorporate real ecological data into their teaching.
All datasets are derived from published scientific studies and are available under CC0 or compatible licenses. Full citations and DOIs are provided in the documentation for each dataset.
Maintainer: W. Edwin Harris [email protected] [copyright holder]
Adriaens, T., Verschelde, P., Cartuyvels, E., D'hondt, B., Vercruysse, E., van Gompel, W., Dewulf, E., & Provoost, S. (2019). A preliminary field trial to compare control techniques for invasive Berberis aquifolium in Belgian coastal dunes. doi:10.5281/zenodo.3351504
Rebstock, G. A., Boersma, P. D., & García-Borboroglu, P. (2022). Magellanic penguin nest counts and reproductive success at Punta Tombo, Argentina, 1982-2021. doi:10.5061/DRYAD.8931ZCRSV
Baino, A., Hopcraft, G., Kendall, C., Munishi, L., Behdenna, A., & Newton, J. (2021). We are what we eat, plus some per mill: Using stable isotopes to estimate diet composition of African vultures. doi:10.5061/dryad.1ns1rn8qf
Crunchant, A-S., Borchers, D., Kuehl, H., & Piel, A. K. (2020). Listening and watching: Do camera traps or acoustic sensors more efficiently detect wild chimpanzees in an open habitat? doi:10.5061/dryad.5dv41ns34
Kalberer, S., Meise, K., Trillmich, F., & Krüger, O. (2018). Reproductive performance of a tropical apex predator in an unpredictable habitat. doi:10.5061/DRYAD.6S48579
Morosse, O., Tsunekage, T., Kenny-Duddela, H., Schield, D., Keller, K., Safran, R., & Levin, I. (2025). North American barn swallows pair, mate, and interact assortatively. doi:10.5061/DRYAD.1G1JWSV8G
Subba, A., Tamang, G., Lama, S., Basnet, N., Kyes, R. C., & Khanal, L. (2024). Habitat occupancy of the critically endangered Chinese pangolin (Manis pentadactyla) under human disturbance in an urban environment: Implications for conservation. doi:10.5061/DRYAD.73N5TB34T
Peacock, J., Waugh, D., Bajpai, S., & Thewissen, J. G. M. (2025). The evolution of hearing and brain size in Eocene whales. doi:10.5061/DRYAD.SF7M0CGH1
Hahn, N. (2021). Elephant agricultural use metrics in Mara-Serengeti ecosystem. doi:10.5061/DRYAD.RN8PK0PBN
Nöbel, S., & Kaufmann, T. (2025). Data from: Mate copying in Drosophila simulans. doi:10.5061/DRYAD.ZS7H44JMC
Schwegmann, S. (2023). Use of viscera from hunted roe deer by vertebrate scavengers in summer in central European mountainous mixed forest. doi:10.5061/DRYAD.Q573N5TPP
Gomo, G., Rød-Eriksen, L., Andreassen, H. P., Mattisson, J., Odden, M., Devineau, O., & Eide, N. E. (2020). Scavenger community structure along an environmental gradient from boreal forest to alpine tundra in Scandinavia. doi:10.1002/ece3.6834
Barbour, K., McClune, D. W., Delahay, R. J., Speakman, J. R., McGowan, N. E., Kostka, B., Montgomery, I. W., Marks, N. J., & Scantlebury, D. M. (2019). No energetic cost of tuberculosis infection in European badgers (Meles meles). doi:10.5061/DRYAD.MN84H20
Miyamoto, K., Chen, C., & Luan, X. (2025). Seasonal activity changes in raccoon dogs and influences of environmental factors from autumn to winter. doi:10.5061/DRYAD.C866T1GJN
Bieber, C., Turbill, C., & Ruf, T. (2019). Effects of aging on timing of hibernation and reproduction. doi:10.5061/DRYAD.8004G37
Damber, B. (2024). Red pandas on the move: Weather and disturbance effects on habitat specialists. doi:10.5061/dryad.cjsxksngd
Feitosa, L. M., Caughman, A., D'Costa, N., Orofino, S., Burns, E., Schiller, L., Worm, B., & Bradley, D. (2025). Estimates of Shark at-vessel, Post-release Mortality, and Retention Ban Effects on Stopping Overfishing. doi:10.5061/DRYAD.0P2NGF27T
Siqueira, F. F. S., Ribeiro-Neto, J. D., Tabarelli, M., Andersen, A. N., Wirth, R., & Leal, I. R. (2018). Human disturbance promotes herbivory by leaf-cutting ants in the Caatinga dry forest. doi:10.5061/DRYAD.KP59G3P
Diniz, P., & Duca, C. (2022). Anthropogenic noise, song, and territorial aggression in southern house wrens. doi:10.5061/DRYAD.TTDZ08M00
# Load a dataset data(vulture_diet) # View the structure str(vulture_diet) # Basic summary summary(vulture_diet) # See what datasets are available data(package = "ecoteach")# Load a dataset data(vulture_diet) # View the structure str(vulture_diet) # Basic summary summary(vulture_diet) # See what datasets are available data(package = "ecoteach")
This dataset contains measurements of daily energy expenditure (DEE) and related variables for European badgers (Meles meles) in relation to their tuberculosis (TB) infection status. The data were collected to examine how disease status and other factors like season, group size, sex, age, and body mass affect energy balance in wild badgers. Some individuals were measured multiple times across different seasons.
badger_energybadger_energy
A data frame with 56 rows and 7 variables:
Unique identifier for each badger
Age class of the badger: "cub" or "adult"
Sex of the badger: "F" (female) or "M" (male)
Number of badgers in the social group
Body mass in kilograms (kg)
Daily energy expenditure (DEE) in kilojoules per day (kJ/day)
Season when measurements were taken: "Winter", "Spring", "Summer", or "Autumn"
Tuberculosis infection status: "Negative", "Diseased", or "Exposed"
Barbour, Katie and McClune, David W. and Delahay, Richard J. and Speakman, John R. and McGowan, Natasha E. and Kostka, Berit and Montgomery, Ian W. and Marks, Nikki J. and Scantlebury, David M. (2019). Data from: No energetic cost of tuberculosis infection in European badgers (Meles meles). Dryad Digital Repository. doi:10.5061/DRYAD.MN84H20
# Load the dataset data(badger_energy) # Basic exploration head(badger_energy) summary(badger_energy) # Compare energy expenditure by disease status boxplot(daily_energy ~ disease, data = badger_energy, main = "Daily Energy Expenditure by TB Status", ylab = "DEE (kJ/day)", xlab = "TB Status") # Examine relationship between body mass and energy expenditure plot(daily_energy ~ body_mass, data = badger_energy, col = as.numeric(disease), pch = 16, main = "Energy Expenditure vs Body Mass", xlab = "Body Mass (kg)", ylab = "DEE (kJ/day)") legend("topright", levels(badger_energy$disease), col = 1:3, pch = 16)# Load the dataset data(badger_energy) # Basic exploration head(badger_energy) summary(badger_energy) # Compare energy expenditure by disease status boxplot(daily_energy ~ disease, data = badger_energy, main = "Daily Energy Expenditure by TB Status", ylab = "DEE (kJ/day)", xlab = "TB Status") # Examine relationship between body mass and energy expenditure plot(daily_energy ~ body_mass, data = badger_energy, col = as.numeric(disease), pch = 16, main = "Energy Expenditure vs Body Mass", xlab = "Body Mass (kg)", ylab = "DEE (kJ/day)") legend("topright", levels(badger_energy$disease), col = 1:3, pch = 16)
This dataset contains information on plumage brightness measurements for North American barn swallows (Hirundo rustica erythrogaster) and their mating patterns. The data includes measurements of belly and breast brightness for social pairs and extra-pair mates. This dataset was used to study assortative mating patterns in barn swallows, investigating how plumage coloration affects mate selection both within social pairs and through extra-pair fertilizations.
barnswallow_brightnessbarnswallow_brightness
A data frame with 19 rows and 7 variables:
Band ID for the focal male
Band ID for the female social mate
Band ID for the extra-pair mate
Belly brightness for the social male (unitless measurement of reflectance)
Breast brightness for the social male (unitless measurement of reflectance)
Belly brightness for the extra-pair male (unitless measurement of reflectance)
Breast brightness for the extra-pair male (unitless measurement of reflectance)
Morosse, Omar, Tsunekage, Toshi, Kenny-Duddela, Heather, Schield, Drew, Keller, Kayleigh, Safran, Rebecca, & Levin, Iris (2025). North American barn swallows pair, mate, and interact assortatively. Dryad Digital Repository. doi:10.5061/DRYAD.1G1JWSV8G
# Load the dataset data(barnswallow_brightness) # Basic exploration head(barnswallow_brightness) summary(barnswallow_brightness) # Compare brightness between social and extra-pair males boxplot(barnswallow_brightness$PairB_bright, barnswallow_brightness$EPB_bright, names = c("Social Male", "Extra-pair Male"), main = "Comparison of Belly Brightness", ylab = "Brightness") # Correlation between social and extra-pair male brightness plot(barnswallow_brightness$PairB_bright, barnswallow_brightness$EPB_bright, main = "Correlation between Social and Extra-pair Male Brightness", xlab = "Social Male Belly Brightness", ylab = "Extra-pair Male Belly Brightness") abline(lm(EPB_bright ~ PairB_bright, data = barnswallow_brightness), col = "red")# Load the dataset data(barnswallow_brightness) # Basic exploration head(barnswallow_brightness) summary(barnswallow_brightness) # Compare brightness between social and extra-pair males boxplot(barnswallow_brightness$PairB_bright, barnswallow_brightness$EPB_bright, names = c("Social Male", "Extra-pair Male"), main = "Comparison of Belly Brightness", ylab = "Brightness") # Correlation between social and extra-pair male brightness plot(barnswallow_brightness$PairB_bright, barnswallow_brightness$EPB_bright, main = "Correlation between Social and Extra-pair Male Brightness", xlab = "Social Male Belly Brightness", ylab = "Extra-pair Male Belly Brightness") abline(lm(EPB_bright ~ PairB_bright, data = barnswallow_brightness), col = "red")
Experimental data from a management treatment study of invasive Berberis aquifolium (Oregon grape) plants conducted across four heavily infested dune sites in Belgium. The study evaluated the effectiveness of different management treatments on individual plants, with regrowth assessments conducted at 6 months and 1 year post-treatment.
berberis_treatmentberberis_treatment
A data frame with 127 rows and 14 variables:
Character, unique identifier for each B. aquifolium plant/clone
Factor, field code identifying the dune site location
Date, when the plant was initially located and treated (April/May 2013)
Factor, management treatment applied:
Manual digging - Uprooting by digging with shovels
Leaf spray (glyphosate) - 5\
Stem cut + glyphosate - Cut and paint with 5\
Stem cut + salt - Cut and treat with saturated NaCl solution
Integer, plant height in centimeters
Integer, clone diameter in centimeters
Integer, number of stems per individual plant/clone
Date, date of regrowth assessment
Ordered factor, stem regrowth response (Dead < Limited < Vital)
Numeric, X-coordinate of plant location (GPS projection)
Numeric, Y-coordinate of plant location (GPS projection)
Numeric, days between treatment and assessment
Factor, binary outcome (Success/Failure)
Numeric, approximate plant volume
Adriaens, T., Verschelde, P., Cartuyvels, E., D'hondt, B., Vercruysse, E., Gompel, W.V., Dewulf, E., & Provoost, S. (2019). Data from: A preliminary field trial to compare control techniques for invasive Berberis aquifolium in Belgian coastal dunes. Dryad Digital Repository. doi:10.5061/DRYAD.ZKH189361
# Load the dataset data(berberis_treatment) # Treatment effectiveness summary table(berberis_treatment$treatment, berberis_treatment$regrowth) # Visualize treatment effectiveness barplot(table(berberis_treatment$treatment, berberis_treatment$regrowth), beside = TRUE, legend = TRUE, main = "Treatment Effectiveness for Invasive Berberis")# Load the dataset data(berberis_treatment) # Treatment effectiveness summary table(berberis_treatment$treatment, berberis_treatment$regrowth) # Visualize treatment effectiveness barplot(table(berberis_treatment$treatment, berberis_treatment$regrowth), beside = TRUE, legend = TRUE, main = "Treatment Effectiveness for Invasive Berberis")
This dataset contains observations of vertebrate scavenger activity at roe deer evisceration residues (carrion) in a central European mountainous mixed forest. The data was collected from 47 roe deer viscera samples from hunted deer that were exposed to vertebrate scavenging in front of camera traps between May and October 2022. The dataset records visits, feeding, and removal events by various vertebrate scavengers, with events considered independent if more than 20 minutes passed between consecutive pictures. Samples were observed for a maximum of 16 days. The data provides insights into the composition of vertebrate scavenging fauna using evisceration residues, which species remove entire samples, and how long viscera remain available to invertebrate scavengers.
carrion_arrivalscarrion_arrivals
A data frame with 599 rows and 7 variables:
Sample site identifier (factor)
Date when camera and sample were set up (Date)
Date when the scavenging event was recorded (Date)
Time when the scavenging event was recorded (hms)
Species of scavenger observed (factor)
Type of behavior observed: Visit, Feeding, or Removal (factor)
Time elapsed in days between sample exposure and detected event (numeric)
Schwegmann, Sebastian (2023). Data for: Use of viscera from hunted roe deer by vertebrate scavengers in summer in central European mountainous mixed forest. Dryad Digital Repository. doi:10.5061/DRYAD.Q573N5TPP
# Load the dataset data(carrion_arrivals) # Basic exploration head(carrion_arrivals) summary(carrion_arrivals) # Count observations by species table(carrion_arrivals$Species) # Compare behaviors by species table(carrion_arrivals$Species, carrion_arrivals$Behaviour) # Calculate average days until first scavenger arrival by species library(dplyr) carrion_arrivals %>% group_by(Species) %>% summarize(mean_days = mean(Days2, na.rm = TRUE)) %>% arrange(mean_days) # Visualize scavenger activity over time if (require(ggplot2)) { ggplot(carrion_arrivals, aes(x = Days2, fill = Species)) + geom_histogram(binwidth = 1, position = "stack") + labs(title = "Scavenger activity over time", x = "Days since carrion placement", y = "Number of observations") }# Load the dataset data(carrion_arrivals) # Basic exploration head(carrion_arrivals) summary(carrion_arrivals) # Count observations by species table(carrion_arrivals$Species) # Compare behaviors by species table(carrion_arrivals$Species, carrion_arrivals$Behaviour) # Calculate average days until first scavenger arrival by species library(dplyr) carrion_arrivals %>% group_by(Species) %>% summarize(mean_days = mean(Days2, na.rm = TRUE)) %>% arrange(mean_days) # Visualize scavenger activity over time if (require(ggplot2)) { ggplot(carrion_arrivals, aes(x = Days2, fill = Species)) + geom_histogram(binwidth = 1, position = "stack") + labs(title = "Scavenger activity over time", x = "Days since carrion placement", y = "Number of observations") }
This dataset contains presence/absence data for wild chimpanzees (Pan troglodytes) detected by camera traps in the Issa Valley, Tanzania. The data was collected as part of a study comparing the efficiency of camera traps versus passive acoustic monitoring for detecting chimpanzees in a savanna-woodland mosaic habitat.
chimpanzee_cameraschimpanzee_cameras
A data frame with observations across multiple cameras and dates:
Camera trap identifier (factor)
Latitude coordinates of the camera trap location (numeric)
Longitude coordinates of the camera trap location (numeric)
Camera placement method: 'systematic' or 'targeted' (factor)
Vegetation type at camera location: 'open' or 'closed' (factor)
Landscape feature at camera location: 'valley', 'slope', or 'plateau' (factor)
Date of observation (Date)
Chimpanzee detection status: 'absent' or 'present' (factor)
The dataset is in long format, with each row representing a camera trap observation for a specific date. Detection values are coded as 'present' (at least one detection during the day) or 'absent' (no detection). NA values indicate days when no survey was conducted (e.g., due to camera malfunction or not being deployed).
Crunchant, Anne-Sophie and Borchers, David and Kuehl, Hjalmar and Piel, Alex K. (2020). Listening and watching: do camera traps or acoustic sensors more efficiently detect wild chimpanzees in an open habitat?. Dryad Digital Repository. doi:10.5061/DRYAD.5DV41NS34
# Load the dataset data(chimpanzee_cameras) # Basic exploration head(chimpanzee_cameras) summary(chimpanzee_cameras) # Count detections by camera (requires dplyr) if (requireNamespace("dplyr", quietly = TRUE)) { library(dplyr) chimpanzee_cameras %>% group_by(Camera) %>% summarize( total_observations = n(), detections = sum(detection == "present", na.rm = TRUE), detection_rate = mean(detection == "present", na.rm = TRUE) ) } # Visualize detection patterns over time (requires ggplot2) if (requireNamespace("ggplot2", quietly = TRUE)) { library(ggplot2) ggplot(chimpanzee_cameras, aes(x = date, y = Camera, fill = detection)) + geom_tile() + scale_fill_manual(values = c("absent" = "lightblue", "present" = "darkred"), na.value = "gray90") + theme_minimal() + labs(title = "Chimpanzee detections by camera over time", x = "Date", y = "Camera") }# Load the dataset data(chimpanzee_cameras) # Basic exploration head(chimpanzee_cameras) summary(chimpanzee_cameras) # Count detections by camera (requires dplyr) if (requireNamespace("dplyr", quietly = TRUE)) { library(dplyr) chimpanzee_cameras %>% group_by(Camera) %>% summarize( total_observations = n(), detections = sum(detection == "present", na.rm = TRUE), detection_rate = mean(detection == "present", na.rm = TRUE) ) } # Visualize detection patterns over time (requires ggplot2) if (requireNamespace("ggplot2", quietly = TRUE)) { library(ggplot2) ggplot(chimpanzee_cameras, aes(x = date, y = Camera, fill = detection)) + geom_tile() + scale_fill_manual(values = c("absent" = "lightblue", "present" = "darkred"), na.value = "gray90") + theme_minimal() + labs(title = "Chimpanzee detections by camera over time", x = "Date", y = "Camera") }
This dataset contains hibernation and reproductive data for edible dormice (Glis glis). The data tracks hibernation patterns, body mass changes, and reproductive activity across multiple years and individuals. The study examines how age affects hibernation timing and reproductive behavior in these small hibernating mammals.
dormouse_hibernationdormouse_hibernation
A data frame with 290 rows and 16 variables:
Unique identifier for each dormouse
Year of birth for the animal
Age of the animal in years
Logarithm of age
Body mass before hibernation (g)
Body mass after hibernation (g)
Duration of hibernation in days
Date when hibernation started (DD.MM.YY format)
Date when hibernation ended (DD.MM.YY format)
End date of previous year's hibernation
Body mass in spring (g)
Year of observation
Sex of the animal (male or female)
Diet type (medium, high fat, or protein)
Age at death in years
Whether the animal was reproductively active (yes or no)
The research shows that age strongly affects hibernation/activity patterns through two pathways: (1) with increasing age, dormice are more likely to reproduce, which delays hibernation onset, and (2) age directly advances emergence from hibernation in spring. This suggests hibernation is not merely an energy-saving strategy but an age-affected life-history trait used to maximize fitness.
Bieber, Claudia and Turbill, Christopher and Ruf, Thomas (2019). Data from: Effects of aging on timing of hibernation and reproduction. Dryad Digital Repository. doi:10.5061/DRYAD.8004G37
# Load the dataset data(dormouse_hibernation) # Basic exploration head(dormouse_hibernation) summary(dormouse_hibernation) # Examine hibernation duration by age boxplot(hibernation_duration ~ age, data = dormouse_hibernation, main = "Hibernation Duration by Age", xlab = "Age (years)", ylab = "Duration (days)") # Compare body mass change during hibernation with(dormouse_hibernation, plot(body_mass_before, body_mass_after, col = as.integer(sex), main = "Body Mass Before vs After Hibernation", xlab = "Body Mass Before (g)", ylab = "Body Mass After (g)")) legend("topleft", levels(dormouse_hibernation$sex), col = 1:2, pch = 1) # Examine reproductive activity by age with(subset(dormouse_hibernation, !is.na(repro_active)), table(age, repro_active))# Load the dataset data(dormouse_hibernation) # Basic exploration head(dormouse_hibernation) summary(dormouse_hibernation) # Examine hibernation duration by age boxplot(hibernation_duration ~ age, data = dormouse_hibernation, main = "Hibernation Duration by Age", xlab = "Age (years)", ylab = "Duration (days)") # Compare body mass change during hibernation with(dormouse_hibernation, plot(body_mass_before, body_mass_after, col = as.integer(sex), main = "Body Mass Before vs After Hibernation", xlab = "Body Mass Before (g)", ylab = "Body Mass After (g)")) legend("topleft", levels(dormouse_hibernation$sex), col = 1:2, pch = 1) # Examine reproductive activity by age with(subset(dormouse_hibernation, !is.na(repro_active)), table(age, repro_active))
A dataset containing observations of mate choice decisions of Drosophila simulans females from three different populations to test whether they copy the mate choice of their conspecifics. The study tested whether female fruit flies acquire a sexual preference for a particular trait of a male after observing a single mating event. The experimental protocol involved a naïve, unmated female first observing a conspecific's mate choice between one artificially colored green and one artificially colored pink male, and subsequently being allowed to choose between two males of the same phenotype herself.
Dsimulans_matechoiceDsimulans_matechoice
A data frame with 383 rows and 14 variables:
Who conducted the experiment (SN: Sabine Nöbel, TK: Tim Kaufmann)
Date of the experiment
Beginning time of the experiment
Position in the experimental box (A-F)
Number of the experimental set-up
Fly population: Haale (Saale), Maison Salasar, or Deyme
Experimental treatment: Mate copying (informed) or Control (uninformed)
Temperature (°C) in the experimental room
Humidity (%) in the experimental room
Color of the male copulating in the demonstration: Green or Pink
Color of the male that started the first courtship: Green or Pink
Color of the male that started the second courtship: Green or Pink
Color of the male copulating in the test phase: Green or Pink
Mate-copying score: "Same color" (observer female chose the same colored male as the demonstrator) or "Different color" (observer female chose a different colored male than the demonstrator)
Nöbel, Sabine and Kaufmann, Tim (2025). Data from: Mate copying in Drosophila simulans. Dryad Digital Repository. doi:10.5061/DRYAD.ZS7H44JMC
# Load the dataset data(Dsimulans_matechoice) # Basic exploration head(Dsimulans_matechoice) summary(Dsimulans_matechoice) # Examine mate copying rates by treatment table(Dsimulans_matechoice$Treatment, Dsimulans_matechoice$MCS) # Compare mate copying across different strains (using base R) mosaicplot(table(Dsimulans_matechoice$Strain, Dsimulans_matechoice$MCS), main = "Mate choice outcomes by strain", color = c("lightblue", "salmon")) # Analyze if environmental conditions affect mate copying boxplot(Temp ~ MCS, data = Dsimulans_matechoice, main = "Temperature effects on mate copying", ylab = "Temperature (°C)")# Load the dataset data(Dsimulans_matechoice) # Basic exploration head(Dsimulans_matechoice) summary(Dsimulans_matechoice) # Examine mate copying rates by treatment table(Dsimulans_matechoice$Treatment, Dsimulans_matechoice$MCS) # Compare mate copying across different strains (using base R) mosaicplot(table(Dsimulans_matechoice$Strain, Dsimulans_matechoice$MCS), main = "Mate choice outcomes by strain", color = c("lightblue", "salmon")) # Analyze if environmental conditions affect mate copying boxplot(Temp ~ MCS, data = Dsimulans_matechoice, main = "Temperature effects on mate copying", ylab = "Temperature (°C)")
A dataset containing agricultural use metrics for 66 elephants in the Mara-Serengeti ecosystem in Kenya and Tanzania. The data were collected to characterize crop use tactics by elephants and to understand how elephants interact with agricultural areas. The dataset includes metrics such as mean agricultural use, maximum use from a moving average, and the difference between mean and max use. These metrics were used to classify agricultural use tactics for each elephant using Gaussian mixture models. The dataset contains individual-year agricultural use metrics, space use, and elephant metadata, with tactic classifications for both lifetime tracks and individual years.
elephant_farmerselephant_farmers
A data frame with 202 rows and 17 variables:
Individual elephant ID
Tactic classification for lifetime GPS track of individual: Rare, Sporadic, Seasonal, or Habitual
Year cuts (cut date April 1 of each year)
Tactic classification for the associated year: Rare, Sporadic, Seasonal, or Habitual
Data start date for a given year
Data stop date for a given year
Number of GPS relocations for an individual in a given year
Mean agricultural use for a given year
Maximum agricultural use from a 90-day moving average for a given year
Difference in mean and max agricultural use for a given year
MCP homerange for an individual in a given year
Mean daily displacement for an individual in a given year
Sex of the individual (male or female)
Age class of individual (young adult or mature adult)
Distance from centroid of homerange to agriculture (meters)
Tactic of the previous year (NA if no previous tactic could be confirmed)
Whether an individual changed tactics ("Changed") or stayed the same ("No change")
Hahn, Nathan (2021). Elephant agricultural use metrics in Mara-Serengeti ecosystem. Dryad Digital Repository. doi:10.5061/DRYAD.RN8PK0PBN
# Load the dataset data(elephant_farmers) # Basic exploration head(elephant_farmers) summary(elephant_farmers) # Examine distribution of tactics by sex table(elephant_farmers$subject_sex, elephant_farmers$tactic.season) # Compare agricultural use metrics across tactics boxplot(year.mean ~ tactic.season, data = elephant_farmers, main = "Mean Agricultural Use by Tactic", ylab = "Mean Agricultural Use") # Examine tactic changes over time # Count how many elephants changed tactics vs stayed the same table(elephant_farmers$tactic.change, useNA = "ifany") # Look at relationship between distance to agriculture and tactic boxplot(centroid.dist.meters ~ tactic.season, data = elephant_farmers, main = "Distance to Agriculture by Tactic", ylab = "Distance (meters)")# Load the dataset data(elephant_farmers) # Basic exploration head(elephant_farmers) summary(elephant_farmers) # Examine distribution of tactics by sex table(elephant_farmers$subject_sex, elephant_farmers$tactic.season) # Compare agricultural use metrics across tactics boxplot(year.mean ~ tactic.season, data = elephant_farmers, main = "Mean Agricultural Use by Tactic", ylab = "Mean Agricultural Use") # Examine tactic changes over time # Count how many elephants changed tactics vs stayed the same table(elephant_farmers$tactic.change, useNA = "ifany") # Look at relationship between distance to agriculture and tactic boxplot(centroid.dist.meters ~ tactic.season, data = elephant_farmers, main = "Distance to Agriculture by Tactic", ylab = "Distance (meters)")
This dataset examines how anthropogenic disturbance and seasonality affect herbivory rates by leaf-cutting ants (Atta opaciceps) in the Caatinga dry forest of northeastern Brazil. The data include measurements of herbivory percentages from eight ant colonies across different disturbance intensities during both wet and dry seasons.
leafcutter_disturbanceleafcutter_disturbance
A data frame with 16 rows and 4 variables:
Integer, unique identifier for each ant colony studied
Numeric, quantitative measure of anthropogenic disturbance intensity (higher values indicate greater disturbance from activities like firewood collection and livestock grazing)
Factor with levels "Dry" and "Wet", indicating the season when measurements were taken
Numeric, percentage of available vegetation consumed by the ant colony
The study found that human disturbance promotes higher herbivory rates by leaf-cutting ants, with particularly strong effects during the dry season. Despite the low productivity of Caatinga vegetation, these ants maintain foraging activity even during peak dry season by utilizing whatever resources are available, highlighting their adaptive capacity in human-modified landscapes.
The researchers measured herbivory rates across a gradient of human disturbance in the Catimbau National Park, a protected area in northeastern Brazil. The study reveals that leaf-cutting ants can maintain high rates of herbivory even in disturbed and seasonally dry environments, which has implications for understanding ecosystem functioning in human-modified tropical dry forests.
Collection period: 2015-2016 Study location: Catimbau National Park, Pernambuco, Brazil (8°24'00" - 8°36'35" S, 37°09'30" - 37°14'40" W)
Siqueira, F. F. S., Ribeiro-Neto, J. D., Tabarelli, M., Andersen, A. N., Wirth, R., & Leal, I. R. (2018). Data from: Human disturbance promotes herbivory by leaf-cutting ants in the Caatinga dry forest. Dryad Digital Repository. doi:10.5061/DRYAD.KP59G3P
# Load the dataset data(leafcutter_disturbance) # Basic exploration head(leafcutter_disturbance) summary(leafcutter_disturbance) # Compare herbivory between seasons boxplot(herbivory_percent ~ season, data = leafcutter_disturbance, main = "Leaf-Cutting Ant Herbivory by Season", xlab = "Season", ylab = "Herbivory (%)") # Examine relationship between disturbance and herbivory plot(leafcutter_disturbance$Disturbance_Index, leafcutter_disturbance$herbivory_percent, col = as.numeric(leafcutter_disturbance$season), pch = 16, cex = 1.2, xlab = "Disturbance Index", ylab = "Herbivory (%)", main = "Ant Herbivory vs. Human Disturbance") legend("topleft", legend = levels(leafcutter_disturbance$season), col = 1:nlevels(leafcutter_disturbance$season), pch = 16) # Linear model of disturbance effect on herbivory model <- lm(herbivory_percent ~ Disturbance_Index * season, data = leafcutter_disturbance) summary(model)# Load the dataset data(leafcutter_disturbance) # Basic exploration head(leafcutter_disturbance) summary(leafcutter_disturbance) # Compare herbivory between seasons boxplot(herbivory_percent ~ season, data = leafcutter_disturbance, main = "Leaf-Cutting Ant Herbivory by Season", xlab = "Season", ylab = "Herbivory (%)") # Examine relationship between disturbance and herbivory plot(leafcutter_disturbance$Disturbance_Index, leafcutter_disturbance$herbivory_percent, col = as.numeric(leafcutter_disturbance$season), pch = 16, cex = 1.2, xlab = "Disturbance Index", ylab = "Herbivory (%)", main = "Ant Herbivory vs. Human Disturbance") legend("topleft", legend = levels(leafcutter_disturbance$season), col = 1:nlevels(leafcutter_disturbance$season), pch = 16) # Linear model of disturbance effect on herbivory model <- lm(herbivory_percent ~ Disturbance_Index * season, data = leafcutter_disturbance) summary(model)
This dataset contains reproductive performance data for female Galapagos sea lions (Zalophus wollebaeki) collected over a 13-year period in the Galapagos archipelago. The data includes information on mother birth dates, body mass, age at first reproduction, and offspring details. This dataset was used to study life history traits and reproductive trade-offs of this tropical apex predator in an unpredictable habitat.
lion_reproductionlion_reproduction
A data frame with 48 rows and 12 variables:
Unique identifier for the mother sea lion
Mother's birth date
Whether the birth date is exact ("Yes"), estimated ("No"), or unknown ("Unknown")
Year the mother was born
Age of the mother when first captured (in days)
Average body mass of the mother at one year of age (in kg)
Unique identifier for the pup
Date when the first pup was born
Sex of the offspring ("Male" or "Female")
Year the mother was first observed
Year the mother was last observed
Age at first reproduction (in years)
Kalberer, Stephanie, Meise, Kristine, Trillmich, Fritz, & Krüger, Oliver (2018). Reproductive performance of a tropical apex predator in an unpredictable habitat. Dryad Digital Repository. doi:10.5061/DRYAD.6S48579
# Load the dataset data(lion_reproduction) # Basic exploration head(lion_reproduction) summary(lion_reproduction) # Calculate mean age at first reproduction mean(lion_reproduction$AFR) # Compare age at first reproduction by offspring sex boxplot(AFR ~ OffspringSex, data = lion_reproduction, main = "Age at First Reproduction by Offspring Sex", ylab = "Age (years)") # Relationship between mother's body mass and age at first reproduction plot(AverageOneYearBodymass ~ AFR, data = lion_reproduction, main = "Body Mass vs. Age at First Reproduction", xlab = "Age at First Reproduction (years)", ylab = "Average Body Mass at One Year (kg)")# Load the dataset data(lion_reproduction) # Basic exploration head(lion_reproduction) summary(lion_reproduction) # Calculate mean age at first reproduction mean(lion_reproduction$AFR) # Compare age at first reproduction by offspring sex boxplot(AFR ~ OffspringSex, data = lion_reproduction, main = "Age at First Reproduction by Offspring Sex", ylab = "Age (years)") # Relationship between mother's body mass and age at first reproduction plot(AverageOneYearBodymass ~ AFR, data = lion_reproduction, main = "Body Mass vs. Age at First Reproduction", xlab = "Age at First Reproduction (years)", ylab = "Average Body Mass at One Year (kg)")
Data from satellite tracking of Magellanic penguins (Spheniscus magellanicus) at Punta Tombo, Argentina, spanning 23 breeding seasons. The dataset contains information on foraging site fidelity, trip characteristics, and reproductive success for individual penguins.
magellanic_penguinsmagellanic_penguins
A data frame with 212 rows and 21 variables:
Integer, breeding season year
Integer, unique identifier for each penguin
Integer, sequential penguin number within season
Integer, instrument deployment sequence
Integer, number of long trip pairs
Numeric, mean distance between foraging sites (km)
Numeric, standard deviation of distance between sites (km)
Numeric, minimum distance between foraging sites (km)
Numeric, maximum distance between foraging sites (km)
Factor, type of tracking instrument used
Character, model of tracking instrument
Integer, number of chicks that fledged successfully
Numeric, mean trip duration in days
Numeric, mean trip distance (km)
Numeric, mean bearing of foraging trips (degrees)
Factor, sex of penguin ("Male", "Female")
Integer, total number of foraging trips
Integer, number of chicks at deployment
Integer, number of chicks that starved
Integer, deployment duration in days
Numeric, mean chlorophyll-a concentration
Rebstock, G., Abrahms, B., & Boersma, D. (2022). Data from: Site fidelity increases reproductive success by increasing foraging efficiency in a marine predator. Dryad Digital Repository. doi:10.5061/DRYAD.8931ZCRSV
Rebstock, G.A., Abrahms, B. & Boersma, P.D. (2022). Site fidelity increases reproductive success by increasing foraging efficiency in a marine predator. Proceedings of the Royal Society B, 289(1975), 20220175.
# Load the dataset data(magellanic_penguins) # Basic exploration head(magellanic_penguins) summary(magellanic_penguins) # Examine foraging efficiency by sex boxplot(TripDistMean ~ PenguinSex, data = magellanic_penguins, main = "Mean Trip Distance by Sex", xlab = "Sex", ylab = "Mean Trip Distance (km)") # Relationship between site fidelity and reproductive success plot(magellanic_penguins$DistBetMean, magellanic_penguins$NFledged, xlab = "Mean Distance Between Sites (km)", ylab = "Number of Chicks Fledged", main = "Site Fidelity vs Reproductive Success")# Load the dataset data(magellanic_penguins) # Basic exploration head(magellanic_penguins) summary(magellanic_penguins) # Examine foraging efficiency by sex boxplot(TripDistMean ~ PenguinSex, data = magellanic_penguins, main = "Mean Trip Distance by Sex", xlab = "Sex", ylab = "Mean Trip Distance (km)") # Relationship between site fidelity and reproductive success plot(magellanic_penguins$DistBetMean, magellanic_penguins$NFledged, xlab = "Mean Distance Between Sites (km)", ylab = "Number of Chicks Fledged", main = "Site Fidelity vs Reproductive Success")
A dataset containing habitat occupancy observations of the Critically Endangered Chinese pangolin (Manis pentadactyla) in the urban landscape of Dharan Sub-metropolitan City, Nepal. The data were collected to analyze spatial distribution, habitat use patterns, and anthropogenic impacts on habitat occupancy of Chinese pangolins. The study used a single-season occupancy modeling approach, investigating factors influencing detection probability and habitat occupancy across 134 grid cells of 600m × 600m each.
pangolin_habitatpangolin_habitat
A data frame with 152 rows and 18 variables:
Unique identifier for each grid cell
Detection (1) or non-detection (0) in first survey replicate
Detection (1) or non-detection (0) in second survey replicate
Detection (1) or non-detection (0) in third survey replicate
Detection (1) or non-detection (0) in fourth survey replicate
Detection (1) or non-detection (0) in fifth survey replicate
Detection (1) or non-detection (0) in sixth survey replicate
Distance to nearest water body in meters
Terrain Ruggedness Index (TRI), a measure of topographic heterogeneity
Mean Normalized Difference Vegetation Index, a measure of vegetation density
Type of habitat: "Sal Forest", "Mixed Forest", "Human Settlement", or "Agricultural Land"
Topographic structure: "Terrace" or "Cliff"
Index of human disturbance, ranging from 0 (low) to 1 (high)
Number of termite mounds in the grid cell
Total number of detections across all six replicates
Binary indicator of whether pangolin was detected (1) or not (0) in any replicate
Categorized human disturbance: "Low", "Medium-Low", "Medium-High", or "High"
The dataset is particularly valuable for teaching concepts in wildlife conservation, occupancy modeling, and human-wildlife interactions in urban environments. It demonstrates how ecological and anthropogenic factors affect endangered species in human-dominated landscapes.
Subba, Asmit and Tamang, Ganesh and Lama, Sony and Basnet, Nabin and Kyes, Randall C. and Khanal, Laxman (2024). Habitat occupancy of the critically endangered Chinese pangolin (Manis pentadactyla) under human disturbance in an urban environment: Implications for conservation. Dryad Digital Repository. doi:10.5061/DRYAD.73N5TB34T
# Load the dataset data(pangolin_habitat) # Basic exploration head(pangolin_habitat) summary(pangolin_habitat) # Examine detection rates across habitat types table(pangolin_habitat$habitat_type, pangolin_habitat$detected) # Visualize the relationship between termite mounds and pangolin detection boxplot(termite_mounds ~ detected, data = pangolin_habitat, main = "Termite Mounds and Pangolin Detection", xlab = "Pangolin Detected", ylab = "Number of Termite Mounds", names = c("Not Detected", "Detected")) # Examine the effect of human disturbance on pangolin detection boxplot(human_disturbance_index ~ detected, data = pangolin_habitat, main = "Human Disturbance and Pangolin Detection", xlab = "Pangolin Detected", ylab = "Human Disturbance Index", names = c("Not Detected", "Detected")) # Visualize detection across disturbance levels barplot(prop.table(table(pangolin_habitat$disturbance_level, pangolin_habitat$detected), 1)[,2], main = "Pangolin Detection Rate by Disturbance Level", xlab = "Disturbance Level", ylab = "Detection Rate")# Load the dataset data(pangolin_habitat) # Basic exploration head(pangolin_habitat) summary(pangolin_habitat) # Examine detection rates across habitat types table(pangolin_habitat$habitat_type, pangolin_habitat$detected) # Visualize the relationship between termite mounds and pangolin detection boxplot(termite_mounds ~ detected, data = pangolin_habitat, main = "Termite Mounds and Pangolin Detection", xlab = "Pangolin Detected", ylab = "Number of Termite Mounds", names = c("Not Detected", "Detected")) # Examine the effect of human disturbance on pangolin detection boxplot(human_disturbance_index ~ detected, data = pangolin_habitat, main = "Human Disturbance and Pangolin Detection", xlab = "Pangolin Detected", ylab = "Human Disturbance Index", names = c("Not Detected", "Detected")) # Visualize detection across disturbance levels barplot(prop.table(table(pangolin_habitat$disturbance_level, pangolin_habitat$detected), 1)[,2], main = "Pangolin Detection Rate by Disturbance Level", xlab = "Disturbance Level", ylab = "Detection Rate")
This dataset contains records of raccoon dog (Nyctereutes procyonoides) detections and other mammal species from camera traps in the Sizuolou Nature Reserve, Beijing, China, along with associated environmental variables. The data was collected from October 15, 2023, to February 29, 2024, covering both autumn and winter seasons. The study examined seasonal activity changes in raccoon dogs and their relationship to environmental and mammalian factors.
raccoondog_environmentraccoondog_environment
A data frame with 144 rows and 21 variables:
Camera installation point ID
Number of Asian badger detection events
Number of wild boar detection events
Number of hog badger detection events
Number of leopard cat detection events
Number of masked palm civet detection events
Number of Père David's rock squirrel detection events
Number of raccoon dog detection events
Number of red squirrel detection events
Number of Siberian roe deer detection events
Number of Siberian weasel detection events
Number of Swinhoe's striped squirrel detection events
Number of Tolai hare detection events
Distance from camera to nearest impervious area (meters)
Distance from camera to nearest agricultural land (meters)
Distance from camera to nearest water source (meters)
Distance from camera to nearest road (meters)
Elevation of camera installation point (meters above sea level)
Topographic Position Index of the camera installation point
Date of detection (days since start of study, October 15, 2023)
Season at time of detection ("Autumn" or "Winter")
Type of vegetation at the camera installation point
Miyamoto, Keisuke and Chen, Chuan and Luan, Xiaofeng (2025). Seasonal activity changes in raccoon dogs and influences of environmental factors from autumn to winter. Dryad Digital Repository. doi:10.5061/DRYAD.C866T1GJN
# Load the dataset data(raccoondog_environment) # Basic exploration head(raccoondog_environment) summary(raccoondog_environment) # Compare raccoon dog detections by season boxplot(raccoon_dog ~ Season, data = raccoondog_environment, main = "Raccoon Dog Detections by Season", ylab = "Number of Detections", xlab = "Season") # Examine relationship between environmental factors and raccoon dog presence # Create a binary presence variable raccoondog_presence <- raccoondog_environment raccoondog_presence$presence <- ifelse(raccoondog_presence$raccoon_dog > 0, 1, 0) # Plot relationship with distance to agricultural land plot(dist_agricultural ~ presence, data = raccoondog_presence, main = "Raccoon Dog Presence vs. Distance to Agricultural Land", xlab = "Presence (0=Absent, 1=Present)", ylab = "Distance to Agricultural Land (m)") # Examine vegetation types where raccoon dogs were detected table(raccoondog_presence$Vegetation[raccoondog_presence$presence == 1])# Load the dataset data(raccoondog_environment) # Basic exploration head(raccoondog_environment) summary(raccoondog_environment) # Compare raccoon dog detections by season boxplot(raccoon_dog ~ Season, data = raccoondog_environment, main = "Raccoon Dog Detections by Season", ylab = "Number of Detections", xlab = "Season") # Examine relationship between environmental factors and raccoon dog presence # Create a binary presence variable raccoondog_presence <- raccoondog_environment raccoondog_presence$presence <- ifelse(raccoondog_presence$raccoon_dog > 0, 1, 0) # Plot relationship with distance to agricultural land plot(dist_agricultural ~ presence, data = raccoondog_presence, main = "Raccoon Dog Presence vs. Distance to Agricultural Land", xlab = "Presence (0=Absent, 1=Present)", ylab = "Distance to Agricultural Land (m)") # Examine vegetation types where raccoon dogs were detected table(raccoondog_presence$Vegetation[raccoondog_presence$presence == 1])
This dataset contains GPS telemetry data from 10 red pandas (Ailurus fulgens) tracked for four months (December 2019 to March 2020) in the Himalayas. The data includes daily movement distances and associated weather conditions, allowing for analysis of how weather events and environmental factors affect the movement patterns of these habitat specialists.
redpanda_movesredpanda_moves
A data frame with 220 rows and 7 variables:
Factor, unique identifier for each of the 10 study animals
Factor, sex of the animal (Male or Female)
Factor, age category of the animal (Adult or Subadult)
Numeric, daily travel distance (m) covered by an individual in 24 hours
Factor, weather condition (Clear, Snowfall, or Rainfall)
Factor, presence of snow cover (Yes or No)
Factor, age of snow if present (Fresh, Old, or No_snow)
Numeric, mean daily temperature in degrees Celsius
The study examined how challenging weather events, particularly snowfall, affect the movement patterns and habitat use of red pandas. The data shows that males traveled further than females when there was snow on the ground, and red pandas generally exhibited risk aversion behavior by occupying areas away from human settlements, showing affinity for higher elevations, and avoiding steep slopes when the forest was covered with snow.
The data was collected using GPS satellite collars. Weather data (except temperature) was collected in the field, while temperature was recorded by in-built sensors in the GPS collars. Given the endangered status of red pandas, the exact coordinates of their locations are not included in this dataset.
The mean daily distance traveled by red pandas was 748 ± 40 m (median 573 m). Red pandas moved between 2,528 and 3,250 m elevation during the study period, with a mean elevation of 2,857 ± 107 m when snow was on the ground and 2,816 ± 99 m without snow.
Damber, B. (2024). Red pandas on the move: Weather and disturbance effects on habitat specialists. Dryad Digital Repository. doi:10.5061/dryad.cjsxksngd
# Load the dataset data(redpanda_moves) # Basic exploration head(redpanda_moves) summary(redpanda_moves) # Compare movement distances by sex boxplot(Distance ~ Sex, data = redpanda_moves, main = "Red Panda Movement Distances by Sex", ylab = "Daily Distance (m)") # Examine effect of snow cover on movement boxplot(Distance ~ Snow_cover, data = redpanda_moves, main = "Effect of Snow Cover on Movement Distance", ylab = "Daily Distance (m)") # Compare male and female movement with snow library(dplyr) redpanda_moves %>% group_by(Sex, Snow_cover) %>% summarize(mean_distance = mean(Distance), sd_distance = sd(Distance))# Load the dataset data(redpanda_moves) # Basic exploration head(redpanda_moves) summary(redpanda_moves) # Compare movement distances by sex boxplot(Distance ~ Sex, data = redpanda_moves, main = "Red Panda Movement Distances by Sex", ylab = "Daily Distance (m)") # Examine effect of snow cover on movement boxplot(Distance ~ Snow_cover, data = redpanda_moves, main = "Effect of Snow Cover on Movement Distance", ylab = "Daily Distance (m)") # Compare male and female movement with snow library(dplyr) redpanda_moves %>% group_by(Sex, Snow_cover) %>% summarize(mean_distance = mean(Distance), sd_distance = sd(Distance))
This dataset contains observations of scavenger communities along an environmental gradient from boreal forest to alpine tundra in central Scandinavia. The data was collected using baited camera traps to quantify the structure of the winter scavenger community and assess how climatic conditions affected spatial patterns of species occurrences at baits. The study found that habitat type (forest or alpine tundra) and snow depth were main determinants of community structure. Occurrence at baits by habitat generalists (red fox, golden eagle, and common raven) typically increased at low temperatures and high snow depth, likely due to increased energetic demands and lower abundance of natural prey in harsh winter conditions.
scavenger_communityscavenger_community
A data frame with 1255 rows and 61 variables:
Site identifier (factor)
Year of observation (numeric)
Julian day (numeric)
Total number of photos (numeric)
Number of empty photos (numeric)
Number of photos with ravens (numeric)
Number of photos with crows (numeric)
Number of photos with magpies (numeric)
Number of photos with Eurasian jays (numeric)
Number of photos with Siberian jays (numeric)
Number of photos with golden eagles (numeric)
Number of photos with white-tailed eagles (numeric)
Number of photos with rough-legged buzzards (numeric)
Number of photos with goshawks (numeric)
Number of photos with red foxes (numeric)
Number of photos with arctic foxes (numeric)
Number of photos with wolverines (numeric)
Number of photos with badgers (numeric)
Number of photos with pine martens (numeric)
Number of photos with other mustelids (numeric)
Total number of photos with large birds (numeric)
Total number of photos with birds (numeric)
Total number of photos with mammals (numeric)
Age of bait in days (numeric)
Snow presence indicator (numeric)
Sampling session identifier (factor)
Raven presence/absence (numeric)
Crow presence/absence (numeric)
Magpie presence/absence (numeric)
Eurasian jay presence/absence (numeric)
Siberian jay presence/absence (numeric)
Golden eagle presence/absence (numeric)
White-tailed eagle presence/absence (numeric)
Rough-legged buzzard presence/absence (numeric)
Goshawk presence/absence (numeric)
Red fox presence/absence (numeric)
Arctic fox presence/absence (numeric)
Wolverine presence/absence (numeric)
Badger presence/absence (numeric)
Pine marten presence/absence (numeric)
Other mustelids presence/absence (numeric)
Arctic fox detected that day (numeric)
Red fox detected that day (numeric)
Wolverine detected that day (numeric)
Raven detected that day (numeric)
Crow detected that day (numeric)
Magpie detected that day (numeric)
Golden eagle detected that day (numeric)
White-tailed eagle detected that day (numeric)
Badger detected that day (numeric)
Pine marten detected that day (numeric)
Eurasian jay detected that day (numeric)
Siberian jay detected that day (numeric)
Large bird detected that day (numeric)
Session identifier (numeric)
Any bird detected that day (numeric)
Any mammal detected that day (numeric)
Length of session (numeric)
Mean solar angle (numeric)
Mean temperature (numeric)
Habitat type: "Boreal forest" or "Alpine tundra" (factor)
Hours of sunlight (numeric)
Snow cover: "Snow cover" or "No snow cover" (factor)
Log-transformed hours of sunlight (numeric)
Altitude in meters (numeric)
Snow depth in cm (numeric)
Gomo, Gjermund and Rød-Eriksen, Lars and Andreassen, Harry P. and Mattisson, Jenny and Odden, Morten and Devineau, Olivier and Eide, Nina E. (2020). Scavenger community structure along an environmental gradient from boreal forest to alpine tundra in Scandinavia. Ecology and Evolution. doi:10.1002/ece3.6834
# Load the dataset data(scavenger_community) # Basic exploration head(scavenger_community) summary(scavenger_community) # Species richness by habitat type if(require(dplyr)) { # Count number of unique species by examining columns with species data scavenger_community %>% group_by(habitat) %>% summarize( raven_present = sum(ravenm > 0, na.rm = TRUE), redfox_present = sum(redfoxm > 0, na.rm = TRUE), wolverine_present = sum(wolverinem > 0, na.rm = TRUE), total_species = raven_present + redfox_present + wolverine_present ) } # Compare bird vs mammal occurrence between habitats if(require(dplyr)) { scavenger_community %>% group_by(habitat) %>% summarize( bird_observations = sum(bird, na.rm = TRUE), mammal_observations = sum(mammal, na.rm = TRUE), observation_ratio = bird_observations / mammal_observations ) } # Visualize snow depth distribution by habitat if(require(ggplot2)) { ggplot(scavenger_community, aes(x = sdepth, fill = habitat)) + geom_histogram(position = "dodge", bins = 20) + labs(title = "Snow depth by habitat type", x = "Snow depth (cm)", y = "Count") }# Load the dataset data(scavenger_community) # Basic exploration head(scavenger_community) summary(scavenger_community) # Species richness by habitat type if(require(dplyr)) { # Count number of unique species by examining columns with species data scavenger_community %>% group_by(habitat) %>% summarize( raven_present = sum(ravenm > 0, na.rm = TRUE), redfox_present = sum(redfoxm > 0, na.rm = TRUE), wolverine_present = sum(wolverinem > 0, na.rm = TRUE), total_species = raven_present + redfox_present + wolverine_present ) } # Compare bird vs mammal occurrence between habitats if(require(dplyr)) { scavenger_community %>% group_by(habitat) %>% summarize( bird_observations = sum(bird, na.rm = TRUE), mammal_observations = sum(mammal, na.rm = TRUE), observation_ratio = bird_observations / mammal_observations ) } # Visualize snow depth distribution by habitat if(require(ggplot2)) { ggplot(scavenger_community, aes(x = sdepth, fill = habitat)) + geom_histogram(position = "dodge", bins = 20) + labs(title = "Snow depth by habitat type", x = "Snow depth (cm)", y = "Count") }
This dataset contains mean estimates of species-specific at-vessel (AVM) and post-release mortality (PRM) for shark species caught by longlines and gillnets. The data were derived from a random forest regression model that analyzed mortality rates based on biological and ecological characteristics of each species. The study assessed how retention bans might impact fishing mortality and whether such measures are sufficient to stop overfishing of threatened shark species.
shark_fishingshark_fishing
A data frame with 982 rows and 12 variables:
Factor, scientific name of shark species
Factor, taxonomic family
Factor, reproductive strategy (matrotrophic viviparity, lecithotrophic viviparity, lecithotrophic oviparity)
Numeric, active hypoxia tolerance metric
Numeric, median depth of occurrence in meters
Numeric, maximum size the species can reach in centimeters
Factor, respiratory method (ram or stationary)
Factor, primary habitat type (pelagic or demersal)
Factor, type of mortality estimate (AVM Longline, PRM Longline)
Numeric, proportion of individuals that died (0-1 scale)
Factor, fishing gear type (Longline)
Factor, simplified mortality type (AVM or PRM)
The dataset includes biological traits for each species (family, reproductive mode, median depth, maximum size), ventilation method (ram vs. stationary), habitat type (pelagic vs. demersal), and predicted mortality proportions for different fishing gear. These predictions help evaluate the potential effectiveness of retention bans as a conservation measure for shark populations.
The study found that smaller-bodied species inhabiting shallow waters were more likely to suffer at-vessel mortality compared to deep-water species, which were more prone to post-release mortality. For threatened shark species, the median ratio of fishing mortality under retention bans compared to maximum sustainable yield was 2.28, indicating that retention bans alone may be insufficient to prevent overfishing.
Collection period: Data compiled through 2024 Study locations: Global analysis
Feitosa, L. M., Caughman, A., D'Costa, N., Orofino, S., Burns, E., Schiller, L., Worm, B., & Bradley, D. (2025). Estimates of Shark at-vessel, Post-release Mortality, and Retention Ban Effects on Stopping Overfishing. Dryad Digital Repository. doi:10.5061/DRYAD.0P2NGF27T
# Load the dataset data(shark_fishing) # Basic exploration head(shark_fishing) summary(shark_fishing) # Compare at-vessel vs post-release mortality boxplot(mortality_prop ~ estimate_type_new, data = shark_fishing, main = "Mortality by Estimate Type", xlab = "Mortality Type", ylab = "Proportion") # Examine relationship between depth and mortality plot(shark_fishing$median_depth, shark_fishing$mortality_prop, col = as.numeric(shark_fishing$estimate_type_new), pch = 16, cex = 0.8, xlab = "Median Depth (m)", ylab = "Mortality Proportion", main = "Shark Mortality vs. Depth") legend("topright", legend = levels(shark_fishing$estimate_type_new), col = 1:nlevels(shark_fishing$estimate_type_new), pch = 16) # Compare mortality by ventilation method boxplot(mortality_prop ~ ventilation_method, data = shark_fishing, main = "Mortality by Ventilation Method", xlab = "Ventilation Method", ylab = "Proportion")# Load the dataset data(shark_fishing) # Basic exploration head(shark_fishing) summary(shark_fishing) # Compare at-vessel vs post-release mortality boxplot(mortality_prop ~ estimate_type_new, data = shark_fishing, main = "Mortality by Estimate Type", xlab = "Mortality Type", ylab = "Proportion") # Examine relationship between depth and mortality plot(shark_fishing$median_depth, shark_fishing$mortality_prop, col = as.numeric(shark_fishing$estimate_type_new), pch = 16, cex = 0.8, xlab = "Median Depth (m)", ylab = "Mortality Proportion", main = "Shark Mortality vs. Depth") legend("topright", legend = levels(shark_fishing$estimate_type_new), col = 1:nlevels(shark_fishing$estimate_type_new), pch = 16) # Compare mortality by ventilation method boxplot(mortality_prop ~ ventilation_method, data = shark_fishing, main = "Mortality by Ventilation Method", xlab = "Ventilation Method", ylab = "Proportion")
Stable isotope data (carbon, nitrogen, and sulfur) from Gyps vulture feathers collected in Tanzania for dietary analysis using stable isotope mixing models (SIMM). This dataset represents the AR.feather subset containing raw consumer isotope values from vulture feathers. Data was collected over 10 months from two protected areas: Serengeti National Park and Selous Game Reserve to analyze vulture dietary patterns across space and time using stable isotope analysis.
vulture_dietvulture_diet
A data frame with 21 rows and 5 variables:
Numeric, delta 13C carbon isotope values per mill (‰)
Numeric, delta 15N nitrogen isotope values per mill (‰)
Numeric, delta 34S sulfur isotope values per mill (‰)
Factor, vulture species sampled (African white-backed or Rüppell's griffon)
Factor, tissue type analyzed (feathers)
Vultures were captured using noose lines around provisioned or natural bait, processed, and released. Feather samples were analyzed for delta13C, delta15N, and delta34S using a PyroCube elemental analyzer at the NERC Life Sciences Mass Spectrometry Facility. The isotope signatures provide insights into vulture diet composition, with delta13C distinguishing between C3 and C4 plant consumers (browsers vs grazers), delta15N indicating trophic level, and delta34S helping separate geographic regions.
This subset was specifically prepared for use in stable isotope mixing models to estimate diet composition in Gyps vultures. The study found that vulture diet consisted primarily of grazing herbivores, with those in Serengeti National Park consuming higher proportions (>87%) of grazing species. Coordinates in the original study were denatured by +0.5 degrees to preserve geographic distribution while ensuring location confidentiality.
Collection period: August 18, 2018 to May 31, 2019 Study locations: Serengeti National Park (2.1540°S, 34.6857°E) and Selous Game Reserve (9.0000°S, 37.5000°E), Tanzania
Baino, A., Hopcraft, G., Kendall, C., Munishi, L., Behdenna, A., & Newton, J. (2021). We are what we eat, plus some per mill: Using stable isotopes to estimate diet composition in Gyps vultures over space and time. Dryad Digital Repository. doi:10.5061/DRYAD.1NS1RN8QF
# Load the dataset data(vulture_diet) head(vulture_diet) summary(vulture_diet) # Examine isotope signatures by species boxplot(d13C ~ species, data = vulture_diet, main = "Carbon Isotope Signatures by Vulture Species", xlab = "Species", ylab = "d13C (per mill)") # Create isotope biplot plot(vulture_diet$d13C, vulture_diet$d15N, col = as.numeric(vulture_diet$species), pch = 16, cex = 1.2, xlab = "d13C (per mill)", ylab = "d15N (per mill)", main = "Vulture Feather Isotope Signatures") legend("topright", legend = levels(vulture_diet$species), col = 1:nlevels(vulture_diet$species), pch = 16) # Summary statistics by species aggregate(. ~ species, data = vulture_diet[,1:4], FUN = mean)# Load the dataset data(vulture_diet) head(vulture_diet) summary(vulture_diet) # Examine isotope signatures by species boxplot(d13C ~ species, data = vulture_diet, main = "Carbon Isotope Signatures by Vulture Species", xlab = "Species", ylab = "d13C (per mill)") # Create isotope biplot plot(vulture_diet$d13C, vulture_diet$d15N, col = as.numeric(vulture_diet$species), pch = 16, cex = 1.2, xlab = "d13C (per mill)", ylab = "d15N (per mill)", main = "Vulture Feather Isotope Signatures") legend("topright", legend = levels(vulture_diet$species), col = 1:nlevels(vulture_diet$species), pch = 16) # Summary statistics by species aggregate(. ~ species, data = vulture_diet[,1:4], FUN = mean)
A dataset containing endocranial volume and body mass measurements for various cetacean (whale) species and other mammals. This dataset was compiled to study the evolution of hearing and brain size in Eocene whales. It includes both extant (living) and fossil species, with a focus on understanding how brain size evolved in relation to body mass and hearing adaptations across different taxonomic groups. The dataset is particularly valuable for teaching concepts in comparative anatomy, allometry, and cetacean evolution.
whale_brainswhale_brains
A data frame with 269 rows and 9 variables:
Taxonomic family of the species
Full taxonomic name for each species
Common name for each species (NA for most fossil species)
Endocranial volume in cubic centimeters (cc)
Brain mass in grams
Occipital condyle width in millimeters
Body mass in kilograms
Categorization as "Cetacean", "Hippopotamid", or "Other Mammal"
Classification as "Extant" (living) or "Fossil" species
Toothed whales (odontocetes) use high-frequency sounds to echolocate, differing significantly from baleen whales (mysticetes), which use low-frequency sound for long-distance communication. This dataset helps explore how hearing functioned in ancestral archaeocetes, and when the specializations of modern species arose.
Peacock, John and Waugh, David and Bajpai, Sunil and Thewissen, JGM (2025). The evolution of hearing and brain size in Eocene whales. Dryad Digital Repository. doi:10.5061/DRYAD.SF7M0CGH1
# Load the dataset data(whale_brains) # Basic exploration head(whale_brains) summary(whale_brains) # Compare brain mass across taxonomic groups boxplot(whale_brains$brain_mass ~ whale_brains$taxonomic_group, main = "Brain Mass by Taxonomic Group", ylab = "Brain Mass (g)", log = "y") # Look at the relationship between brain mass and body mass # Using log scales to show allometric relationships plot(whale_brains$body_mass, whale_brains$brain_mass, log = "xy", col = as.numeric(whale_brains$taxonomic_group), pch = 16, main = "Brain Mass vs. Body Mass", xlab = "Body Mass (kg)", ylab = "Brain Mass (g)") legend("topleft", legend = levels(whale_brains$taxonomic_group), col = 1:3, pch = 16) # Compare fossil and extant cetaceans cetaceans <- subset(whale_brains, taxonomic_group == "Cetacean") boxplot(cetaceans$brain_mass ~ cetaceans$time_period, main = "Brain Mass in Fossil vs. Extant Cetaceans", ylab = "Brain Mass (g)", log = "y")# Load the dataset data(whale_brains) # Basic exploration head(whale_brains) summary(whale_brains) # Compare brain mass across taxonomic groups boxplot(whale_brains$brain_mass ~ whale_brains$taxonomic_group, main = "Brain Mass by Taxonomic Group", ylab = "Brain Mass (g)", log = "y") # Look at the relationship between brain mass and body mass # Using log scales to show allometric relationships plot(whale_brains$body_mass, whale_brains$brain_mass, log = "xy", col = as.numeric(whale_brains$taxonomic_group), pch = 16, main = "Brain Mass vs. Body Mass", xlab = "Body Mass (kg)", ylab = "Brain Mass (g)") legend("topleft", legend = levels(whale_brains$taxonomic_group), col = 1:3, pch = 16) # Compare fossil and extant cetaceans cetaceans <- subset(whale_brains, taxonomic_group == "Cetacean") boxplot(cetaceans$brain_mass ~ cetaceans$time_period, main = "Brain Mass in Fossil vs. Extant Cetaceans", ylab = "Brain Mass (g)", log = "y")
This dataset examines how southern house wrens (Troglodytes aedon musculus) adjust their songs in response to both anthropogenic noise and territorial challenges in urban and rural environments. The data include acoustic measurements from playback experiments that simulated territorial intrusions in different noise conditions.
wren_noisewren_noise
A data frame with 144 rows and 17 variables:
Character, identifier for the playback trial recording
Date, when the playback trial and sound pressure level measurement occurred
Factor with levels "Playback" (acute aggressive encounter) and "Post-playback" (relaxed aggressive encounter)
Numeric, start time of the song in the recording (seconds)
Numeric, end time of the song in the recording (seconds)
Numeric, song minimum frequency (kHz)
Numeric, song maximum frequency (kHz)
Numeric, song frequency bandwidth (kHz): maximum - minimum frequency
Numeric, song length in seconds
Numeric, song mean frequency (kHz): average frequency weighted by amplitude
Factor with levels "Rural" and "Urban", habitat type
Factor, study site identifier
Factor, identity of the recorded male wren
Factor, identity of the playback stimulus used
Numeric, day of the year
Numeric, decimal time or hour of day
Numeric, equivalent continuous sound level (LAeq), a time-averaged sound pressure level in dB
The study investigates the potential trade-off between adjusting acoustic signals to transmit effectively in noisy environments versus communicating aggressive intent during territorial encounters. It includes measurements of song characteristics such as frequency, bandwidth, and duration, along with contextual information about habitat type and noise levels.
The researchers found that urban wrens behaved more aggressively in response to territorial intrusion than rural wrens, regardless of noise levels. Males produced songs with lower minimum frequency and wider frequency bandwidth during acute aggressive encounters, suggesting these song characteristics communicate aggressive intent or fighting ability. Urban wrens consistently produced higher-pitched songs than rural wrens, and those in the noisiest territories produced the highest-pitched trills, but only in non-aggressive contexts.
Collection period: 2018 Study locations: Urban and rural sites in Vitória, Espírito Santo, Brazil
Diniz, P., & Duca, C. (2022). Anthropogenic noise, song, and territorial aggression in southern house wrens. Dryad Digital Repository. doi:10.5061/DRYAD.TTDZ08M00
# Load the dataset data(wren_noise) # Basic exploration head(wren_noise) summary(wren_noise) # Compare minimum frequency between habitats boxplot(BottomFreq ~ Habitat, data = wren_noise, main = "Minimum Song Frequency by Habitat", xlab = "Habitat Type", ylab = "Minimum Frequency (kHz)") # Examine relationship between noise level and song frequency plot(wren_noise$Noise_SPL_LAeq, wren_noise$BottomFreq, col = as.numeric(wren_noise$Habitat), pch = 16, cex = 1.2, xlab = "Noise Level (dB)", ylab = "Minimum Frequency (kHz)", main = "Song Frequency vs. Noise Level") legend("topleft", legend = levels(wren_noise$Habitat), col = 1:nlevels(wren_noise$Habitat), pch = 16) # Compare song characteristics between playback stages boxplot(Bandwidth ~ PlaybackStage, data = wren_noise, main = "Song Bandwidth by Playback Stage", xlab = "Playback Stage", ylab = "Bandwidth (kHz)")# Load the dataset data(wren_noise) # Basic exploration head(wren_noise) summary(wren_noise) # Compare minimum frequency between habitats boxplot(BottomFreq ~ Habitat, data = wren_noise, main = "Minimum Song Frequency by Habitat", xlab = "Habitat Type", ylab = "Minimum Frequency (kHz)") # Examine relationship between noise level and song frequency plot(wren_noise$Noise_SPL_LAeq, wren_noise$BottomFreq, col = as.numeric(wren_noise$Habitat), pch = 16, cex = 1.2, xlab = "Noise Level (dB)", ylab = "Minimum Frequency (kHz)", main = "Song Frequency vs. Noise Level") legend("topleft", legend = levels(wren_noise$Habitat), col = 1:nlevels(wren_noise$Habitat), pch = 16) # Compare song characteristics between playback stages boxplot(Bandwidth ~ PlaybackStage, data = wren_noise, main = "Song Bandwidth by Playback Stage", xlab = "Playback Stage", ylab = "Bandwidth (kHz)")