| Title: | Global Fishery and Aquaculture Statistics |
|---|---|
| Description: | The Food and Agriculture Organization of the United Nations (FAO) FishStat database is the leading source of global fishery and aquaculture statistics and provides unique information for sector analysis and monitoring. This package provides the global production data from all fisheries and aquaculture in R format, ready for analysis. |
| Authors: | Arni Magnusson [aut, cre], Rishi Sharma [aut], FAO [cph] |
| Maintainer: | Arni Magnusson <[email protected]> |
| License: | CC BY-NC-SA 4.0 |
| Version: | 2026.1.0.0 |
| Built: | 2026-05-23 05:48:08 UTC |
| Source: | https://github.com/sofia-taf/fishstat |
The Food and Agriculture Organization of the United Nations (FAO) FishStat database is the leading source of global fishery and aquaculture statistics and provides unique information for sector analysis and monitoring.
This package provides the global production data from all fisheries and aquaculture in R format, ready for analysis.
Production tables:
aquaculture |
aquaculture production |
capture |
capture production |
production |
aquaculture and capture production |
Lookup tables:
area |
fishing areas |
country |
countries and territories |
environment |
aquaculture environments |
measure |
units of measurement |
source |
sources of production |
species |
taxonomic groups |
status |
status of data entries |
Production tables can be joined with lookup tables using the
merge function, as demonstrated in the help page examples for
aquaculture and capture production. The column
names in this package have been designed to allow automatic inference of
which columns to join, and the resulting table will have unique column names.
The merge function is generally useful for joining tables, but other
join methods are available in R that can be faster but require either
additional packages or more coding. The production example uses
square brackets and the match function to add one lookup column at a
time to the production table. Compared to the slower merge function,
this saves time, both for users and CRAN servers running maintenance tests.
Rather than optimizing speed or memory footprint, one can optimize convenience by constructing a full table with all data records and all columns:
prod.all <- merge(merge(merge(merge(merge(merge(production,
area), country), measure), source), species), status)
cap.all <- merge(merge(merge(merge(merge(capture,
area), country), measure), species), status)
aqua.all <- merge(merge(merge(merge(merge(merge(aquaculture,
area), country), environment), measure), species), status)
Popular paradigms for joining tables include:
Base R, where merge returns a data.frame.
The dplyr package, where inner_join returns a
tibble.
The data.table package, where merge returns a
data.table.
The data in the package were downloaded from the FAO data server and imported into R. The R package version indicates the version of FishStat data it includes. Column names have been simplified to facilitate quick exploration and plotting in R.
An effort has been made to describe each table in the corresponding R help page. However, the official and authoritative documentation of the FishStat database is found on the FAO FishStat website.
The example below demonstrates how the FishStat data can be used to produce an overview of global fisheries and aquaculture. The combination of FishStat and the R environment can also be very efficient for analyses that focus on selected areas, countries, species, and/or taxonomic groups.
Arni Magnusson and Rishi Sharma created this R package.
All credit for the FishStat database goes to the Statistics Team of the FAO Fisheries and Aquaculture Division, as well as national data submitters. The database terms of use are based on the CC BY-NC-SA 3.0 IGO license. The R package is released under a similar CC BY-NC-SA 4.0 license.
To cite the use of FishStat data:
FAO. [Year]. FishStat data. Fisheries and Aquaculture Division. Rome. https://www.fao.org/fishery/en/fishstat.
To cite the use of this R package to access the data, cite FishStat (above) as well as:
Magnusson, A. and R. Sharma. [Year]. fishstat: Global Fishery and Aquaculture Statistics. R package version [Version]. https://cran.r-project.org/package=fishstat.
The package on CRAN provides the latest FishStat data, within a few weeks after an official FAO data release. For research and reference purposes, packages containing older data releases are available on GitHub with descriptive names. For example, the fishstat21 and fishstat22 packages contain the FAO FishStat data releases from 2021 and 2022:
install_github("https://github.com/sofia-taf/fishstat21")
install_github("https://github.com/sofia-taf/fishstat22")
head(production) # Analyze production measured in tonnes prod <- production[production$measure == "Q_tlw" & production$value > 0,] # Fast merge yearbook and inlandmarine columns prod$yearbook <- species$yearbook[match(prod$species, species$species)] prod$inlandmarine <- area$inlandmarine[match(prod$area, area$area)] # Select SOFIA species, excluding mammals, reptiles, and plants prod <- prod[grep("Fish, crustaceans and molluscs", prod$yearbook, fixed=TRUE),] # Determine origin prod$origin <- ifelse(prod$source == "CAPTURE", "Capture", "Aquaculture") prod$w <- ifelse(prod$inlandmarine == "Marine areas", "marine", "inland") prod$origin <- paste0(prod$origin, " (", prod$w, ")") cbind(sort(unique(prod$origin))) # World capture fisheries and aquaculture production x <- xtabs(value~year+origin, aggregate(value~year+origin, prod, sum)) x <- x / 1e6 library(areaplot) areaplot(x, legend=TRUE, args.legend=list(x="topleft"), ylab="million tonnes")head(production) # Analyze production measured in tonnes prod <- production[production$measure == "Q_tlw" & production$value > 0,] # Fast merge yearbook and inlandmarine columns prod$yearbook <- species$yearbook[match(prod$species, species$species)] prod$inlandmarine <- area$inlandmarine[match(prod$area, area$area)] # Select SOFIA species, excluding mammals, reptiles, and plants prod <- prod[grep("Fish, crustaceans and molluscs", prod$yearbook, fixed=TRUE),] # Determine origin prod$origin <- ifelse(prod$source == "CAPTURE", "Capture", "Aquaculture") prod$w <- ifelse(prod$inlandmarine == "Marine areas", "marine", "inland") prod$origin <- paste0(prod$origin, " (", prod$w, ")") cbind(sort(unique(prod$origin))) # World capture fisheries and aquaculture production x <- xtabs(value~year+origin, aggregate(value~year+origin, prod, sum)) x <- x / 1e6 library(areaplot) areaplot(x, legend=TRUE, args.legend=list(x="topleft"), ylab="million tonnes")
Aquaculture production quantity by species, area, country, and aquatic environment for the years 1950-2024, compiled and published by FAO (2026).
aquacultureaquaculture
Data frame containing eight columns:
species |
species code |
year |
year |
area |
area code |
country |
country code |
value |
quantity in tonnes |
measure |
measure code |
status |
status code |
environment |
environment code
|
This data frame contains the full set of 107,419 data records from the FishStat Aquaculture Quantity data table. Column names have been simplified to facilitate quick exploration and plotting in R.
FAO (2026). Global Aquaculture Production. Fisheries and Aquaculture Division. Rome.
https://www.fao.org/fishery/en/collection/aquaculture
aquaculture and capture data are also
available in a combined production format.
area, country, environment,
measure, source, species, and
status are lookup tables.
fishstat-package gives an overview of the package.
head(aquaculture) # Add species columns aqua <- merge(aquaculture, species) # Top 10 aquaculture species in 2024, production in tonnes x <- aggregate(value~species_name, aqua, sum, subset=year==2024) x$value <- round(x$value) head(x[order(-x$value),], 10) # Total aquaculture production by major taxa since 1950, in million tonnes aggregate(value~tolower(major), aqua, function(x) round(sum(x/1e6))) # Annual aquaculture production of all animals x <- aggregate(value~year, aqua, sum, subset=major!="PLANTAE AQUATICAE") plot(value/1e6~year, x, ylab="million tonnes", type="l") title(main="Aquaculture production: All animals")head(aquaculture) # Add species columns aqua <- merge(aquaculture, species) # Top 10 aquaculture species in 2024, production in tonnes x <- aggregate(value~species_name, aqua, sum, subset=year==2024) x$value <- round(x$value) head(x[order(-x$value),], 10) # Total aquaculture production by major taxa since 1950, in million tonnes aggregate(value~tolower(major), aqua, function(x) round(sum(x/1e6))) # Annual aquaculture production of all animals x <- aggregate(value~year, aqua, sum, subset=major!="PLANTAE AQUATICAE") plot(value/1e6~year, x, ylab="million tonnes", type="l") title(main="Aquaculture production: All animals")
Major inland and marine fishing areas, defined by FAO (2026).
areaarea
Data frame containing five columns:
area |
area code |
area_name |
area name |
inlandmarine |
inland or marine |
faregion |
northern, central, or southern (marine fishing areas) |
ocean |
Atlantic, Indian, Pacific, or Southern Ocean (marine fishing areas) |
This data frame contains the full set of 29 data records from the FishStat Water Area Groups data table. Column names have been simplified to facilitate quick exploration and plotting in R.
FAO (2026). Global Production. Fisheries and Aquaculture Division. Rome.
https://www.fao.org/fishery/en/collection/global_production
aquaculture and capture data are also
available in a combined production format.
area, country, environment,
measure, source, species, and
status are lookup tables.
fishstat-package gives an overview of the package.
head(area) # Inland waters and marine areas area[area$inlandmarine == "Inland waters", c("area", "area_name")] area[area$inlandmarine == "Marine areas", c("area", "area_name")] # Check if any area has zero production nonzero <- unique(production$area[production$value > 0]) print(area[!(area$area %in% nonzero),], row.names=FALSE) # Check which species groups are recorded in areas 98 and 99 species_98_99 <- unique(production$species[production$area %in% 98:99]) cbind(unique(species$isscaap[species$species %in% species_98_99])) # Marine fishing areas in northern, central, and southern regions area$area[area$faregion == "Northern regions"] area$area[area$faregion == "Central regions"] area$area[area$faregion == "Southern regions"] # Examine one area print.simple.list(area[area$area == 71,])head(area) # Inland waters and marine areas area[area$inlandmarine == "Inland waters", c("area", "area_name")] area[area$inlandmarine == "Marine areas", c("area", "area_name")] # Check if any area has zero production nonzero <- unique(production$area[production$value > 0]) print(area[!(area$area %in% nonzero),], row.names=FALSE) # Check which species groups are recorded in areas 98 and 99 species_98_99 <- unique(production$species[production$area %in% 98:99]) cbind(unique(species$isscaap[species$species %in% species_98_99])) # Marine fishing areas in northern, central, and southern regions area$area[area$faregion == "Northern regions"] area$area[area$faregion == "Central regions"] area$area[area$faregion == "Southern regions"] # Examine one area print.simple.list(area[area$area == 71,])
Capture production quantity by species, area, and country for the years 1950-2024, compiled and published by FAO (2026).
capturecapture
Data frame containing seven columns:
species |
species code |
year |
year |
area |
area code |
country |
country code |
value |
quantity in tonnes or number of individuals |
measure |
measure code |
status |
status code
|
This data frame contains the full set of 1,052,197 data records from the FishStat Capture Quantity data table. Column names have been simplified to facilitate quick exploration and plotting in R.
FAO (2026). Global Capture Production. Fisheries and Aquaculture Division. Rome.
https://www.fao.org/fishery/en/collection/capture
aquaculture and capture data are also
available in a combined production format.
area, country, environment,
measure, source, species, and
status are lookup tables.
fishstat-package gives an overview of the package.
head(capture) # Analyze catches measured in tonnes cap <- aggregate(value~species+year, capture, sum, subset=measure=="Q_tlw") cap <- merge(cap, species[c("species", "species_name", "major")]) # Top 10 capture species in 2024 x <- aggregate(value~species_name, cap, sum, subset=year==2024) x$value <- round(x$value) head(x[order(-x$value),], 10) # Total capture production by major taxa since 1950, in million tonnes x <- aggregate(value~tolower(major), cap, function(x) round(sum(x/1e6))) x[x$value > 0,] # Annual capture production of all animals x <- aggregate(value~year, cap, sum, subset=major!="PLANTAE AQUATICAE") plot(value/1e6~year, x, ylim=c(0,105), ylab="million tonnes", type="l") title(main="Capture production: All animals")head(capture) # Analyze catches measured in tonnes cap <- aggregate(value~species+year, capture, sum, subset=measure=="Q_tlw") cap <- merge(cap, species[c("species", "species_name", "major")]) # Top 10 capture species in 2024 x <- aggregate(value~species_name, cap, sum, subset=year==2024) x$value <- round(x$value) head(x[order(-x$value),], 10) # Total capture production by major taxa since 1950, in million tonnes x <- aggregate(value~tolower(major), cap, function(x) round(sum(x/1e6))) x[x$value > 0,] # Annual capture production of all animals x <- aggregate(value~year, cap, sum, subset=major!="PLANTAE AQUATICAE") plot(value/1e6~year, x, ylim=c(0,105), ylab="million tonnes", type="l") title(main="Capture production: All animals")
Countries and various territories, defined by FAO (2026).
countrycountry
Data frame containing eight columns:
country |
country code |
country_name |
country name |
iso2 |
ISO 2-alpha code |
iso3 |
ISO 3-alpha code |
continent |
continent |
georegion |
geographic region |
ecoclass |
economic class |
official |
official country name |
This data frame contains the full set of 275 data records from the FishStat Country Groups data table. Column names have been simplified to facilitate quick exploration and plotting in R.
FAO (2026). Global Production. Fisheries and Aquaculture Division. Rome.
https://www.fao.org/fishery/en/collection/global_production
aquaculture and capture data are also
available in a combined production format.
area, country, environment,
measure, source, species, and
status are lookup tables.
fishstat-package gives an overview of the package.
head(country) # Regions within continents table(country$georegion, country$continent) # Select country entries that have non-zero production nonzero <- unique(production$country[production$value > 0]) country.nz <- country[country$country %in% nonzero,] length(country.nz$country) # Only country and country_name are always defined cbind(sapply(country, function(x) all(x != ""))) # Columns defined for non-zero production cbind(sapply(country.nz, function(x) all(x != ""))) # Economic class levels sort(unique(country$ecoclass)) # Examine individual countries print.simple.list(country[country$iso2 == "IS",]) print.simple.list(country[country$country_name == "Samoa",])head(country) # Regions within continents table(country$georegion, country$continent) # Select country entries that have non-zero production nonzero <- unique(production$country[production$value > 0]) country.nz <- country[country$country %in% nonzero,] length(country.nz$country) # Only country and country_name are always defined cbind(sapply(country, function(x) all(x != ""))) # Columns defined for non-zero production cbind(sapply(country.nz, function(x) all(x != ""))) # Economic class levels sort(unique(country$ecoclass)) # Examine individual countries print.simple.list(country[country$iso2 == "IS",]) print.simple.list(country[country$country_name == "Samoa",])
Aquatic environments for aquaculture, defined by FAO (2026).
environmentenvironment
Data frame containing two columns:
environment |
environment code |
environment_name |
environment name |
This data frame contains the full set of 4 data records from the FishStat Production Environment data table. Column names have been simplified to facilitate quick exploration and plotting in R.
FAO (2026). Aquaculture Production. Fisheries and Aquaculture Division. Rome.
https://www.fao.org/fishery/en/collection/aquaculture
aquaculture and capture data are also
available in a combined production format.
area, country, environment,
measure, source, species, and
status are lookup tables.
fishstat-package gives an overview of the package.
environment # Aquaculture production by environment in 2024, in million tonnes x <- merge(aquaculture, environment) x <- aggregate(value~environment_name, x, sum, subset=year==2024) transform(x, value=round(value/1e6))environment # Aquaculture production by environment in 2024, in million tonnes x <- merge(aquaculture, environment) x <- aggregate(value~environment_name, x, sum, subset=year==2024) transform(x, value=round(value/1e6))
Units of measurement, defined by FAO (2026).
measuremeasure
Data frame containing seven columns:
measure |
measure code |
measure_name |
measure name |
short |
short name |
multiplier |
unit multiplier |
unit |
unit symbol |
measure_description |
measure description |
sws |
SWS code |
This data frame contains the full set of 11 data records from the FishStat Units data table. Column names have been simplified to facilitate quick exploration and plotting in R.
FAO (2026). Global Production. Fisheries and Aquaculture Division. Rome.
https://www.fao.org/fishery/en/collection/global_production
aquaculture and capture data are also
available in a combined production format.
area, country, environment,
measure, source, species, and
status are lookup tables.
fishstat-package gives an overview of the package.
head(measure, 3) # Aquaculture production is measured in tonnes live weight table(aquaculture$measure) # Capture production is measured in tonnes or number of individuals table(capture$measure) # When number of individuals is used, it is for mammals and reptiles x <- merge(capture[capture$measure=="Q_no_1",], species) aggregate(value~isscaap, x, sum) aggregate(value~isscaap, x, sum, subset=year==2024) # Examine one measure print.simple.list(measure[measure$measure=="Q_tlw",])head(measure, 3) # Aquaculture production is measured in tonnes live weight table(aquaculture$measure) # Capture production is measured in tonnes or number of individuals table(capture$measure) # When number of individuals is used, it is for mammals and reptiles x <- merge(capture[capture$measure=="Q_no_1",], species) aggregate(value~isscaap, x, sum) aggregate(value~isscaap, x, sum, subset=year==2024) # Examine one measure print.simple.list(measure[measure$measure=="Q_tlw",])
Aquaculture and capture production quantity by species, area, and country for the years 1950-2024, compiled and published by FAO (2026).
productionproduction
Data frame containing eight columns:
species |
species code |
year |
year |
area |
area code |
country |
country code |
value |
quantity in tonnes or number of individuals |
measure |
measure code |
status |
status code |
source |
source code
|
This data frame contains the full set of 1,159,616 data records from the FishStat Production Quantity data table. Column names have been simplified to facilitate quick exploration and plotting in R.
FAO (2026). Global Production. Fisheries and Aquaculture Division. Rome.
https://www.fao.org/fishery/en/collection/global_production
aquaculture and capture data are also
available in a combined production format.
area, country, environment,
measure, source, species, and
status are lookup tables.
fishstat-package gives an overview of the package.
head(production) # Analyze production measured in tonnes prod <- production[production$measure == "Q_tlw" & production$value > 0,] # Fast merge yearbook and inlandmarine columns prod$yearbook <- species$yearbook[match(prod$species, species$species)] prod$inlandmarine <- area$inlandmarine[match(prod$area, area$area)] # Select SOFIA species, excluding mammals, reptiles, and plants prod <- prod[grep("Fish, crustaceans and molluscs", prod$yearbook, fixed=TRUE),] # Determine origin prod$origin <- ifelse(prod$source == "CAPTURE", "Capture", "Aquaculture") prod$w <- ifelse(prod$inlandmarine == "Marine areas", "marine", "inland") prod$origin <- paste0(prod$origin, " (", prod$w, ")") cbind(sort(unique(prod$origin))) # World capture fisheries and aquaculture production x <- xtabs(value~year+origin, aggregate(value~year+origin, prod, sum)) x <- x / 1e6 library(areaplot) areaplot(x, legend=TRUE, args.legend=list(x="topleft"), ylab="million tonnes")head(production) # Analyze production measured in tonnes prod <- production[production$measure == "Q_tlw" & production$value > 0,] # Fast merge yearbook and inlandmarine columns prod$yearbook <- species$yearbook[match(prod$species, species$species)] prod$inlandmarine <- area$inlandmarine[match(prod$area, area$area)] # Select SOFIA species, excluding mammals, reptiles, and plants prod <- prod[grep("Fish, crustaceans and molluscs", prod$yearbook, fixed=TRUE),] # Determine origin prod$origin <- ifelse(prod$source == "CAPTURE", "Capture", "Aquaculture") prod$w <- ifelse(prod$inlandmarine == "Marine areas", "marine", "inland") prod$origin <- paste0(prod$origin, " (", prod$w, ")") cbind(sort(unique(prod$origin))) # World capture fisheries and aquaculture production x <- xtabs(value~year+origin, aggregate(value~year+origin, prod, sum)) x <- x / 1e6 library(areaplot) areaplot(x, legend=TRUE, args.legend=list(x="topleft"), ylab="million tonnes")
Sources of aquaculture and capture production, defined by FAO (2026).
sourcesource
Data frame containing two columns:
source |
source code |
source_name |
source name |
This data frame contains the full set of 4 data records from the FishStat Production Source data table. Column names have been simplified to facilitate quick exploration and plotting in R.
FAO (2026). Global Production. Fisheries and Aquaculture Division. Rome.
https://www.fao.org/fishery/en/collection/global_production
aquaculture and capture data are also
available in a combined production format.
area, country, environment,
measure, source, species, and
status are lookup tables.
fishstat-package gives an overview of the package.
source # Analyze production measured in tonnes prod <- production[production$measure == "Q_tlw" & production$value > 0,] prod <- merge(prod, source) # Production by source in 2024, in million tonnes x <- aggregate(value~source_name, prod, sum, subset=year==2024) transform(x, value=round(value/1e6))source # Analyze production measured in tonnes prod <- production[production$measure == "Q_tlw" & production$value > 0,] prod <- merge(prod, source) # Production by source in 2024, in million tonnes x <- aggregate(value~source_name, prod, sum, subset=year==2024) transform(x, value=round(value/1e6))
Aquatic species and taxonomic groups, defined by FAO (2026).
speciesspecies
Data frame containing ten columns:
species |
species code |
species_name |
species name |
scientific |
scientific name |
isscaap |
ISSCAAP group |
major |
major taxa |
cpc_class |
CPC class |
cpc_group |
CPC group |
yearbook |
yearbook category |
author |
author of scientific name |
taxonomic |
taxonomic code |
This data frame contains the full set of 13,772 data records from the FishStat Species Groups data table. Column names have been simplified to facilitate quick exploration and plotting in R.
FAO (2026). Global Production. Fisheries and Aquaculture Division. Rome.
https://www.fao.org/fishery/en/collection/global_production
aquaculture and capture data are also
available in a combined production format.
area, country, environment,
measure, source, species, and
status are lookup tables.
fishstat-package gives an overview of the package.
head(species, 3) # Select species entries that have non-zero production nonzero <- unique(production$species[production$value > 0]) species.nz <- species[species$species %in% nonzero,] length(species.nz$species) # Only species, scientific, major, and taxonomic are always defined cbind(sapply(species, function(x) all(x != ""))) # Plus isscaap and yearbook for non-zero production cbind(sapply(species.nz, function(x) all(x != ""))) # A variety of species are missing species_name, cpc_class, cpc_group cbind(table(species.nz$major[species.nz$species_name == ""])) cbind(table(species.nz$major[species.nz$cpc_class == ""])) cbind(table(species.nz$major[species.nz$cpc_group == ""])) # Number of species entries that have non-zero production by major taxa cbind(table(species.nz$major)) # By yearbook categories and major taxa table(species.nz$major, species.nz$yearbook) # Number of unique yearbook categories, major taxa, isscaap groups, etc. cbind(sapply(species.nz, function(x) length(unique(x)))) # The scientific and species_name entries are not unique table(species.nz$scientific)[table(species.nz$scientific) > 1] table(species.nz$species_name)[table(species.nz$species_name) > 1] # Examine one species print.simple.list(species[species$species_name == "Atlantic cod",]) print.simple.list(species[species$species == "YFT",]) # English name when available, otherwise scientific name (FishStatJ style) species$species_alt <- ifelse(species$species_name != "", species$species_name, paste0("[", species$scientific, "]")) species[grep("Hoplias", species$scientific), c("species_name", "scientific", "species_alt")]head(species, 3) # Select species entries that have non-zero production nonzero <- unique(production$species[production$value > 0]) species.nz <- species[species$species %in% nonzero,] length(species.nz$species) # Only species, scientific, major, and taxonomic are always defined cbind(sapply(species, function(x) all(x != ""))) # Plus isscaap and yearbook for non-zero production cbind(sapply(species.nz, function(x) all(x != ""))) # A variety of species are missing species_name, cpc_class, cpc_group cbind(table(species.nz$major[species.nz$species_name == ""])) cbind(table(species.nz$major[species.nz$cpc_class == ""])) cbind(table(species.nz$major[species.nz$cpc_group == ""])) # Number of species entries that have non-zero production by major taxa cbind(table(species.nz$major)) # By yearbook categories and major taxa table(species.nz$major, species.nz$yearbook) # Number of unique yearbook categories, major taxa, isscaap groups, etc. cbind(sapply(species.nz, function(x) length(unique(x)))) # The scientific and species_name entries are not unique table(species.nz$scientific)[table(species.nz$scientific) > 1] table(species.nz$species_name)[table(species.nz$species_name) > 1] # Examine one species print.simple.list(species[species$species_name == "Atlantic cod",]) print.simple.list(species[species$species == "YFT",]) # English name when available, otherwise scientific name (FishStatJ style) species$species_alt <- ifelse(species$species_name != "", species$species_name, paste0("[", species$scientific, "]")) species[grep("Hoplias", species$scientific), c("species_name", "scientific", "species_alt")]
Status of data entries, defined by FAO (2026).
statusstatus
Data frame containing four columns:
status |
status code |
status_name |
status name |
status_description |
short name |
alternate |
unit multiplier |
This data frame contains the full set of 16 data records from the FishStat Symbols data table. Column names have been simplified to facilitate quick exploration and plotting in R.
FAO (2026). Global Production. Fisheries and Aquaculture Division. Rome.
https://www.fao.org/fishery/en/collection/global_production
aquaculture and capture data are also
available in a combined production format.
area, country, environment,
measure, source, species, and
status are lookup tables.
fishstat-package gives an overview of the package.
head(status, 3) # Aquaculture data entries # Percentage that have official status, estimated, and negligible 100 * proportions(table(aquaculture$status)) # Capture data entries # Percentage that have official status, estimated, and negligible 100 * proportions(table(capture$status)) # Examine one status definition print.simple.list(status[status$status=="N",])head(status, 3) # Aquaculture data entries # Percentage that have official status, estimated, and negligible 100 * proportions(table(aquaculture$status)) # Capture data entries # Percentage that have official status, estimated, and negligible 100 * proportions(table(capture$status)) # Examine one status definition print.simple.list(status[status$status=="N",])