# 8 Basic Fisheries Statistics

## 8.1 Calculating Landings

One of the first analyses you may be interested in is calculating annual landings in the fishery. To calculate annual landings, take your `landings_data` data frame, add a column for weight of individual fish in kilograms by using the `mutate` function, group the data by year by using the `group_by` function, and then summarize the data for each year by summing the total weight of all fish caught in each year using the `summarize` and `sum` functions.

``````# Start with the landings data frame
annual_landings <- landings_data %>%
# Add colomn for kilograms by dividing gram column by 1000
mutate(Weight_kg = Weight_g / 1000) %>%
# Group the data by year
group_by(Year) %>%
# Next, summarize the total annual landings per year
summarize(Annual_Landings_kg = sum(Weight_kg,na.rm=TRUE))

## Display a table of the annual landings data
annual_landings``````
``````## # A tibble: 9 x 2
##    Year Annual_Landings_kg
##   <int>              <dbl>
## 1  2003          310.40914
## 2  2004          565.30807
## 3  2005          163.24191
## 4  2006           37.11914
## 5  2010          131.84178
## 6  2011          156.77825
## 7  2012          101.53198
## 8  2013          579.52008
## 9  2014         1193.75519``````

Note the use of `na.rm = TRUE` in the code above. This is an important argument of many R functions (`sum()` in this case) and it tells R what to do with `NA` values in your data. Here, we are telling R to first remove `NA` values before calculating the sum of the `Weight_kg` variable. By default, many functions will return `NA` if any value is `NA`, which is often not desirable.

You may be interested in looking at landings across different gear types. Here, we now group the data frame by both the year and the gear type in order to summarize the total landings by year and by gear.

``````# Start with the landings data frame
annual_gear_landings <- landings_data %>%
# Add colomn for kilograms by dividing gram column by 1000
mutate(Weight_kg = Weight_g / 1000) %>%
# Group the data by year and gear type
group_by(Year,Gear) %>%
# Next, summarize the total annual landings per year and gear type
summarize(Annual_Landings_kg = sum(Weight_kg,na.rm=TRUE))

## Display a table of the annual landings data by gear type
annual_gear_landings``````
``````## # A tibble: 39 x 3
## # Groups:   Year [?]
##     Year     Gear Annual_Landings_kg
##    <int>    <chr>              <dbl>
##  1  2003  gillnet          13.413401
##  2  2003 handline           2.874861
##  3  2003  muroami         247.879049
##  4  2003     trap          46.241825
##  5  2004  gillnet           4.189301
##  6  2004 handline          57.705893
##  7  2004  muroami         370.866460
##  8  2004 speargun           9.476406
##  9  2004     trap         118.683464
## 10  2004 trolling           4.386547
## # ... with 29 more rows``````

## 8.2 Calculating Catch-per-Unit-Effort (CPUE)

You may also be interested in calculating catch-per-unit-effort (CPUE). CPUE is calculated by dividing the catch of each fishing trip by the number of hours fished during that trip. This gives CPUE in units of kilograms per hour. The median for every year is then calculated in order to remove outliers - some fishers are much more efficient than others.

``````# Start with the landings data frame
cpue_data <- landings_data %>%
# Add colomn for kilograms by dividing gram column by 1000
mutate(Weight_kg = Weight_g / 1000) %>%
# Group by year and Trip ID so that you can calculate CPUE for every trip in every year
group_by(Year,Trip_ID) %>%
# For each year and trip ID, calculate the CPUE for each trip by dividing the sum of the catch, converted from grams to kilograms, by the trip by the number of fishing hours
summarize(Trip_CPUE = sum(Weight_kg) / mean(Effort_Hours)) %>%
# Next, just group by year so we can calculate median CPUE for each year across all trips in the year
group_by(Year) %>%
# Calculate median CPUE for each year
summarize(Median_CPUE_kg_hour = median(Trip_CPUE))

# Display a table of the CPUE data
cpue_data``````
``````## # A tibble: 9 x 2
##    Year Median_CPUE_kg_hour
##   <int>               <dbl>
## 1  2003          0.31834277
## 2  2004          0.26233292
## 3  2005          0.40145105
## 4  2006          0.44029501
## 5  2010          0.01742840
## 6  2011          0.03123217
## 7  2012          0.03123217
## 8  2013          0.19638408
## 9  2014          0.88216281``````

## 8.3 Calculating Percent Mature

You may also wish to analyze your length data. One analysis would be to determine the percentage of mature fish in the catch in every year of the data frame. First let’s define `m95`, the length at which 95% of fish are mature. For Caesio cuning, we know this is 15.9cm. Next, let’s add a column to the data frame using the `mutate` function that represents whether each fish is mature or not (represented by a `TRUE` or `FALSE`), group the data frame by year, and then summarize for each year the percentage of mature fish out of the total number of sampled fish.

``````# Define m95, the length at which 95% of fish are mature
m95 = 15.9

landings_data %>%
# Add a column to the data that indicates whether each length measurement is from a mature or immature fish. If it's mature, this value should be TRUE; if immature, FALSE.
mutate(Mature = Length_cm > m95) %>%
# Group by year so we can see the percent mature for every year
group_by(Year) %>%
# The percentage mature is equal to the  number of mature fish divided by the total number of fish and multiplied by 100
summarize(Percent_Mature = sum(Mature) / n() * 100) ``````
``````## # A tibble: 9 x 2
##    Year Percent_Mature
##   <int>          <dbl>
## 1  2003       98.56916
## 2  2004       98.62188
## 3  2005       97.73371
## 4  2006      100.00000
## 5  2010       91.80556
## 6  2011       99.77629
## 7  2012       99.65398
## 8  2013       99.46164
## 9  2014       99.55665``````

Over 90% of the fish are mature throughout the time series, which is a great sign!