fishing_gear_survey

Quarto

Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see https://quarto.org.

Running Code

When you click the Render button a document will be generated that includes both content and the output of embedded code. You can embed code like this:

1 + 1
[1] 2

You can add options to executable code like this

[1] 4

The echo: false option disables the printing of code (only output is displayed).

一、原始数据处理

1. 加载软件包

library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.3     ✔ readr     2.1.4
✔ forcats   1.0.0     ✔ stringr   1.5.0
✔ ggplot2   3.4.4     ✔ tibble    3.2.1
✔ lubridate 1.9.3     ✔ tidyr     1.3.0
✔ purrr     1.0.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

2. 读取数据

# 读取数据
raw_data <- read.csv("/Users/R/Fishing_Gear_Survey/survey_data_1012.csv")

3. 变量重命名

# 变量重命名
full_data <- raw_data |>
  rename(
    survey_No. = "序号",
    survey_date = "提交答卷时间",
    survey_time_used = "所用时间",
    survey_source = "来源",
    survey_source_details = "来源详情",
    survey_ip = "来自IP",
    ship_name = "X1.渔船船名.",
    phone_numeber = "X2.请您留下手机号码.便于数据校正..",
    ship_length = "X3.渔船长度.米..",
    gear_type = "X4.渔具类型",
    gear_name = "X5.渔具名称",
    gillnet_head_line_length = "X6.每片刺网渔具上纲长度.米.",
    beam_length = "X7.网具桁杆长度.米.",
    frame_perimeter = "X8.网具框架.网口.周长.米.",
    surrouding_net_head_line_length = "X9.围网网具上纲长度.米.",
    gear_head_line1_length = "X10.网具上纲长度.米.",
    gear_head_line2_length = "X11.网具上纲长度.米.",
    gear_side_line1_length = "X12.网具一边纲长度.米.",
    gear_foot_line_length = "X13.网具沉子纲长度.米.",
    No._of_hooks_per_line = "X14.每根钓线钓钩数量.个.",
    line_length_per_unit = "X15.每筐.盘.排.钓钩主线长度",
    pots_length = "X16.单个地笼长度.米.",
    gillnet_height = "X17.每片刺网渔具作业时网具高度",
    surrouding_net_height = "X18.围网网衣最高部位拉直高度.米.",
    surrouding_net_codend_length = "X19.有囊围网网囊长度.米.",
    stow_net_height = "X20.张网渔具侧纲.竖杆竖杆.米.",
    gear_foot_length = "X21.网具下纲长度.米.",
    gear_side_line2_length = "X22.网具另一边纲长度.米.",
    gear_length = "X23.网衣拉直长度.米.",
    gillnet_used_quantity = "X24.作业时刺网网具使用数量.片.",
    trawl_net_used_quantity = "X25.作业时使用拖网渔具数量.顶.",
    stow_net_used_quantity1 = "X26.作业时张网渔具数量.顶.",
    stow_net_used_quantity2 = "X27.作业时张网渔具使用数量.顶.",
    hooks_used_quantity_per_unit = "X28.钓具钓线.钓钩.钓鱼人.的数量",
    hooks_used_quantity = "X29.单船使用多少筐.盘.排.钓钩",
    pots_used_quantity = "X30.笼壶渔具使用的数量.个.",
    codend_quantity_per_unit = "X31.单顶网具网囊数量.个.",
    hook_quantiy_per_unit = "X32.每筐.盘.排.钓钩数量多少个",
    gear_weight_per_codend = "X33.网具单个网囊重量.kg.公斤.",
    gear_weight_per_unit = "X34.单顶网具网衣重量.kg.公斤.不含沉浮子.",
    surrounding_net_weight = "X35.围网网具重量.kg.公斤.",
    stow_net_weight = "X36.单顶张网网具重量.kg.公斤.",
    gillnet_mesh_minsize = "X37.刺网最小网目尺寸大小",
    trawl_mesh_minsize = "X38.拖网最小网目尺寸大小",
    surrounding_net_mesh_size = "X39.围网最小网目尺寸大小",
    stow_net_mesh_minsize1 = "X40.张网网具的最小网目尺寸大小",
    stow_net_mesh_minsize2 = "X41.单片张网最小网目尺寸大小",
    mesh_minsize = "X42.网具最小网目尺寸大小",
    mesh_minsize_aspiration = "X43.您认为网具最小网目尺寸多大合适..公分.",
    mesh_maxsize = "X44.网具的最大网目尺寸.公分.",
    gillnet_expend_quantity = "X45.平均每年更新.消耗.耗损.网具总片数",
    condend_expend = "X46.平均每年消耗网囊数量.个.",
    trawl_expend_quantity = "X47.平均每年更新.消耗.损耗.拖网网具数量",
    gear_expend_years = "X48.平均每顶网具使用年限.年.",
    stow_net_expend_quantity = "X49.平均每年更新.消耗.损耗.张网渔具数量.顶.",
    pots_expend_quantity = "X50.平均每年更新.消耗.损耗.笼壶渔具数量.个.",
    hooks_expend_quantity = "X51.平均每年新购钓钩数量.个.",
    light_total_watt = "X52.渔船集鱼灯总功率.千瓦.",
    flush_whether = "X53.捕捞时是否使用水冲",
    bump_whether = "X54.捕捞时是否使用泵吸"
    )

4. 数据类型转换

# 数据类型转换
full_data$survey_date <- as.Date(full_data$survey_date, format = "%Y/%m/%d %H:%M:%S")
full_data$ship_length <- as.numeric(full_data$ship_length)
Warning: NAs introduced by coercion

5. 数据重编码(recording)

  • 渔具类型
# 渔具类型(汉译英)
full_data <- within(
  full_data,{
    gear_type[gear_type == "拖网"] <- "trawl"
    gear_type[gear_type == "刺网"] <- "gillnet"
    gear_type[gear_type == "围网"] <- "surrouding_net"
    gear_type[gear_type == "地拉网"] <- "beach_seine"
    gear_type[gear_type == "张网"] <- "stow_net"
    gear_type[gear_type == "敷网"] <- "lift_net"
    gear_type[gear_type == "抄网"] <- "scoop_net"
    gear_type[gear_type == "掩罩"] <- "falling_gear"
    gear_type[gear_type == "陷阱"] <- "traps"
    gear_type[gear_type == "钓具"] <- "hook_and_line"
    gear_type[gear_type == "耙刺"] <- "raks_and_pricks"
    gear_type[gear_type == "笼壶"] <- "baskets_and_pots"
  }
)
  • 渔具名称
# 渔具名称
full_data <- within(
  full_data,{
    gear_name[gear_name == "定置三重刺网"] <- "G_set3"
    gear_name[gear_name == "定置双重刺网"] <- "G_set2"
    gear_name[gear_name == "定置单片刺网"] <- "G_set1"
    gear_name[gear_name == "漂流三重刺网"] <- "G_drift3"
    gear_name[gear_name == "漂流双重刺网"] <- "G_drift2"
    gear_name[gear_name == "漂流单片刺网"] <- "G_drift1"
    gear_name[gear_name == "漂流无下纲刺网"] <- "G_driftN"
    
    gear_name[gear_name == "单船无囊围网"] <- "S_nobag_1"
    gear_name[gear_name == "双船船无囊围网"] <- "S_nobag_2"
    gear_name[gear_name == "单船有囊围网"] <- "S_bag_1"
    gear_name[gear_name == "双船有囊围网"] <- "S_bag_2"
    
    gear_name[gear_name == "单船有袖单囊拖网(包括臂架拖网)"] <- "T_boat1"
    gear_name[gear_name == "双船有袖单囊拖网"] <- "T_boat2"
    gear_name[gear_name == "单船桁杆拖网"] <- "T_beam"
    gear_name[gear_name == "单船框架拖网"] <- "T_frame"
    
    gear_name[gear_name == "双锚单片张网"] <- "St_danpian_sm"
    gear_name[gear_name == "多锚单片张网"] <- "St_danpian_duom"
    gear_name[gear_name == "单桩桁杆张网"] <- "St_beam_dz"
    gear_name[gear_name == "单锚桁杆张网"] <- "St_beam_dm"
    gear_name[gear_name == "多锚桁杆张网"] <- "St_beam_sm"
    gear_name[gear_name == "双桩竖杆张网"] <- "St_stick_sz"
    gear_name[gear_name == "双锚竖杆张网"] <- "St_stick_sm"
    gear_name[gear_name == "船张竖杆张网"] <- "St_stick_cz"
    gear_name[gear_name == "多桩竖杆张网"] <- "St_stick_duoz"
    gear_name[gear_name == "单桩框架张网"] <- "St_frame_dz"
    gear_name[gear_name == "单锚框架张网"] <- "St_frame_dm"
    gear_name[gear_name == "多锚框架张网"] <- "St_frame_duom"
    gear_name[gear_name == "船张框架张网"] <- "St_frame_cz"
    gear_name[gear_name == "双桩张纲张网"] <- "St_canvas_sz"
    gear_name[gear_name == "双锚张纲张网"] <- "St_canvas_sm"
    gear_name[gear_name == "双桩有翼单囊张网"] <- "St_wing_sz"
    gear_name[gear_name == "双锚有翼单囊张网"] <- "St_wing_sm"
    gear_name[gear_name == "多锚有翼单囊张网"] <- "St_wing_duom"
    gear_name[gear_name == "单锚张纲张网(帆张网)"] <- "St_canvas_dm"
    gear_name[gear_name == "单桩张纲张网(帆张网)"] <- "St_canvas_dz"
    gear_name[gear_name == "多锚张纲张网"] <- "St_canvas_duom"
    
    gear_name[gear_name == "岸敷撑架敷网"] <- "St_1"
    gear_name[gear_name == "船敷撑架敷网"] <- "St_2"
    gear_name[gear_name == "船敷箕状敷网"] <- "St_3"
    
    gear_name[gear_name == "推移兜状抄网"] <- "St_4"
    
    gear_name[gear_name == "撑开掩网掩罩"] <- "St_5"
    gear_name[gear_name == "抛撒掩网掩罩"] <- "St_6"
    
    gear_name[gear_name == "导陷建网陷阱"] <- "St_7"
    
    gear_name[gear_name == "曳绳拟饵单钩钓"] <- "H_1"
    gear_name[gear_name == "垂钓拟饵复钩钓"] <- "H_2"
    gear_name[gear_name == "垂钓真饵复钩钓"] <- "H_3"
    gear_name[gear_name == "垂钓真饵单钩钓"] <- "H_4"
    gear_name[gear_name == "定置延绳真饵单钩钓"] <- "H_5"
    gear_name[gear_name == "漂流延绳拟饵复钩钓"] <- "H_6"
    gear_name[gear_name == "漂流延绳真饵单钩钓"] <- "H_7"
    
    gear_name[gear_name == "拖曳齿耙耙刺"] <- "St_1"
    gear_name[gear_name == "投射叉刺耙刺"] <- "St_2"
    gear_name[gear_name == "钩刺柄钩耙刺"] <- "St_3"
    gear_name[gear_name == "钩刺齿耙耙刺"] <- "St_4"
    gear_name[gear_name == "铲耙锹铲耙刺"] <- "St_5"
    gear_name[gear_name == "铲耙齿耙耙刺"] <- "St_6"
    
    gear_name[gear_name == "散布倒须笼"] <- "P_1"
    gear_name[gear_name == "定置延绳倒须笼"] <- "P_2"
    gear_name[gear_name == "定置延绳洞穴壶"] <- "P_3"
    gear_name[gear_name == "漂流延绳弹夹笼"] <- "P_4"
  }
)
  • 上纲长度

二、调查总体情况

1. 不同类型渔具数量

ggplot(full_data, aes(x =  fct_infreq(gear_type))) + 
  geom_bar() + 
  coord_flip()

三、不同类型渔具分析

(一)刺网gillnet

1. 选取刺网数据

# 筛选刺网数据
gillnet <- full_data |>
  filter(gear_type == "gillnet") |>
  select(
    survey_No.:gear_name, 
    gillnet_head_line_length, 
    gillnet_height, 
    gillnet_used_quantity, 
    gillnet_mesh_minsize, 
    mesh_minsize_aspiration, 
    gillnet_expend_quantity
    ) 

2. 刺网渔具类型分布

ggplot(gillnet, aes(x =  fct_infreq(gear_name))) + 
  geom_bar()

3. 刺网渔船长度分布

# 计算不同类型渔船长度平均值
gillnet |> 
  group_by(gear_name) |>
  summarise(
    a = mean(ship_length)
  )
# A tibble: 7 × 2
  gear_name     a
  <chr>     <dbl>
1 G_drift1   28.5
2 G_drift2   31.1
3 G_drift3   32.3
4 G_driftN   27.0
5 G_set1     25.3
6 G_set2     20.3
7 G_set3     21.5
ggplot(gillnet, aes(gear_name, ship_length)) + 
  geom_boxplot()

4. 不同类型刺网渔船数量

ggplot(gillnet, aes(fct_infreq(gear_name))) + 
  geom_bar()

ggplot(gillnet, aes(ship_length,fill = gear_name)) + 
  geom_histogram(breaks = c(3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48))

5. 上纲长度分布

# 上纲长度分布
ggplot(gillnet, aes(x = gillnet_head_line_length)) +
  geom_bar()

# 侧纲长度分布
ggplot(gillnet, aes(x = gillnet_height)) +
  geom_bar()+ 
  coord_flip()

6. 刺网渔具使用数量

# 刺网渔具使用数量
ggplot(gillnet, aes(x = gillnet_used_quantity)) + 
  geom_bar() + 
  coord_flip()

7. 刺网消耗数量

ggplot(gillnet, aes(x = gillnet_expend_quantity)) + 
  geom_bar() + 
  coord_flip()