Learn R Programming

doBy (version 4.5-15)

codstom: Diet of Atlantic cod in the Gulf of St. Lawrence (Canada)

Description

Stomach content data for Atlantic cod (Gadus morhua) in the Gulf of St.Lawrence, Eastern Canada. Note: many prey items were of no interest for this analysis and were regrouped into the "Other" category.

Usage

data(codstom)

Arguments

Format

A data frame with 10000 observations on the following 10 variables.
region
a factor with levels SGSL NGSL representing the southern and northern Gulf of St. Lawrence, respectively
ship.type
a factor with levels 2 3 31 34 90 99
ship.id
a factor with levels 11558 11712 136148 136885 136902 137325 151225 151935 99433
trip
a factor with levels 10 11 12 179 1999 2 2001 20020808 3 4 5 6 7 8 88 9 95
set
a numeric vector
fish.id
a numeric vector
fish.length
a numeric vector, length in mm
prey.mass
a numeric vector, mass of item in stomach, in g
prey.type
a factor with levels Ammodytes_sp Argis_dent Chion_opil Detritus Empty Eualus_fab Eualus_mac Gadus_mor Hyas_aran Hyas_coar Lebbeus_gro Lebbeus_pol Leptocl_mac Mallot_vil Megan_norv Ophiuroidea Other Paguridae Pandal_bor Pandal_mon Pasiph_mult Sabin_sept Sebastes_sp Them_abys Them_comp Them_lib

Source

Small subset from a larger dataset (more stomachs, more variables, more prey.types) collected by D. Chabot and M. Hanson, Fisheries & Oceans Canada (chabotd@dfo-mpo.gc.ca).

Details

Cod are collected either by contracted commerical fishing vessels (ship.type 90 or 99) or by research vessels. Commercial vessels are identified by a unique ship.id.

Either one research vessel or several commercial vessels conduct a survey (trip), during which a trawl, gillnets or hooked lines are set several times. Most trips are random stratified surveys (depth-based stratification).

Each trip takes place within one of the regions. The trip label is only guaranteed to be unique within a region and the set label is only guaranteed to be unique within a trip.

For each fish caught, the fish.length is recorded and the fish is allocated a fish.id, but the fish.id is only guaranteed to be unique within a set. A subset of the fish caught are selected for stomach analysis (stratified random selection according to fish length; unit of stratification is the set for research surveys, the combination ship.id and stratum for surveys conducted by commercial vessels, although strata are not shown in codstom).

The basic experimental unit in this data set is a cod stomach (one stomach per fish). Each stomach is uniquely identified by a combination of region, ship.type, ship.id, trip, set, and fish.id.

For each prey item found in a stomach, the species and mass of the prey item are recorded, so there can be multiple observations per stomach. There may also be several prey items with the same prey.type in the one stomach (for example many prey.types have been recoded Other, which produced many instances of Other in the same stomach).

If a stomach is empty, a single observation is recorded with prey.type Empty and a prey.mass of zero.

Examples

Run this code
data(codstom)
str(codstom)
# removes multiple occurences of same prey.type in stomachs
codstom1 <- summaryBy(prey.mass ~ 
                      region+ship.type+ship.id+trip+set+fish.id+prey.type,
                      data = codstom, id = ~fish.length, 
                      keep.names=TRUE, FUN = sum) 

# keeps a single line per stomach with the total mass of stomach content
codstom2 <- summaryBy(prey.mass ~ region+ship.type+ship.id+trip+set+fish.id,
                      data = codstom, id = ~fish.length, 
                      keep.names=TRUE, FUN = sum) 

# mean prey mass per stomach for each trip
codstom3 <- summaryBy(prey.mass ~ region+ship.type+ship.id+trip,
                      data = codstom2, keep.names=TRUE, FUN = mean) 

## Not run:           
# # wide version, one line per stomach, one column per prey type
# library(reshape)
# codstom4 <- melt(codstom, id = c(1:7, 9))
# codstom5 <- cast(codstom4, 
#                  region+ship.type+ship.id+trip+set+fish.id+fish.length ~ 
#                  prey.type, sum)
# k <- length(names(codstom5))
# prey_col <- 8:k
# out <- codstom5[,prey_col]
# out[is.na(out)] <- 0
# codstom5[,prey_col] <- out
# codstom5$total.content <- rowSums(codstom5[, prey_col])
# ## End(Not run)

Run the code above in your browser using DataLab