Skip to contents

Computes mean harvested-while-sought rates (fish per angler-hour) for anglers targeting each species. For each interview, the rate is: harvested_count / angler_effort where harvested_count is the total number of fish harvested (kept) of the species the angler was seeking, and angler_effort is angler-hours (effort x n_anglers, standardized at design time by add_interviews).

Usage

summarize_hws_rates(design, by = NULL, conf_level = 0.95)

Arguments

design

A creel_design object with interviews attached via add_interviews (with species_sought) and species catch data attached via add_catch.

by

Optional tidy selector for grouping columns from design$interviews. Common choices: by = species_sought (HWS-03), by = c(month, species_sought) (HWS-02), by = c(month, angler_type, species_sought) (HWS-01). When NULL, returns a single overall rate across all interviews.

conf_level

Numeric confidence level for the t-interval. Default 0.95.

Value

A data.frame with class c("creel_summary_hws_rates", "data.frame") and columns: grouping columns (if any), N (integer, interviews per group), mean_rate (numeric, mean fish/angler-hour), se (numeric, standard error), ci_lower, ci_upper.

Details

Interview-based summary, not pressure-weighted. This function computes a simple arithmetic mean over sampled interviews. It does NOT apply survey weighting by sampling effort or effort stratum. For pressure-weighted extrapolated estimates use estimate_harvest_rate.

The catch filter ensures only species the angler was targeting are counted (i.e., rows in design$catch where catch_type == "harvested" and species == species_sought).

Examples

data(example_calendar)
data(example_interviews)
data(example_catch)
d <- creel_design(example_calendar, date = date, strata = day_type)
d <- add_interviews(d, example_interviews,
  catch = catch_total, effort = hours_fished, harvest = catch_kept,
  trip_status = trip_status, species_sought = species_sought
)
#>  No `n_anglers` provided — assuming 1 angler per interview.
#>  Pass `n_anglers = <column>` to use actual party sizes for angler-hour
#>   normalization.
#>  Added 22 interviews: 17 complete (77%), 5 incomplete (23%)
d <- add_catch(d, example_catch,
  catch_uid = interview_id, interview_uid = interview_id,
  species = species, count = count, catch_type = catch_type
)
summarize_hws_rates(d, by = species_sought)
#>   species_sought  N mean_rate        se   ci_lower  ci_upper
#> 1           bass  6 0.1250000 0.1250000 -0.1963227 0.4463227
#> 2        panfish  5 0.2666667 0.2666667 -0.4737187 1.0070520
#> 3        walleye 11 0.7943723 0.1979076  0.3534067 1.2353379