wrangle_data_2

Author

qigr_20231012

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).

Loaded packages

Reading data

raw_data <- read.csv("/Users/R/Fishing_Gear_Survey/survey_data_1012.csv")

Rename

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_guantity = "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.捕捞时是否使用泵吸"
    )

Data type change

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

gear type

1. gillnet

ggplot(gillnet, aes(gear_name, ship_length)) +

geom_boxplot()

  • 选取刺网数据

    gillnet <- full_data |>
      filter(gear_type == "刺网") |>
      select(
        survey_No.:gear_name, 
        gillnet_head_line_length, 
        gillnet_height, 
        gillnet_used_guantity, 
        gillnet_mesh_minsize, 
        mesh_minsize_aspiration, 
        gillnet_expend_quantity
        ) 
  • 对数据内的渔具名称重新命名

    # set_gillnets, drift_gillnets, set_trammel_nets, drift_trammel_nets, set_double_nets, drift_double_nets
    
    gillnet$gear_name[gillnet$gear_name == "定置三重刺网"] <- "set_trammel_nets"
    gillnet$gear_name[gillnet$gear_name == "定置双重刺网"] <- "set_double_nets"
    gillnet$gear_name[gillnet$gear_name == "定置单片刺网"] <- "set_gillnets"
    gillnet$gear_name[gillnet$gear_name == "漂流三重刺网"] <- "drift_trammel_nets"
    gillnet$gear_name[gillnet$gear_name == "漂流双重刺网"] <- "drift_double_nets"
    gillnet$gear_name[gillnet$gear_name == "漂流单片刺网"] <- "drift_gillnets"
    gillnet$gear_name[gillnet$gear_name == "漂流无下纲刺网"] <- "without_footline_nets"
  • 对数据格式转换

    # 数据类型转换
    gillnet$ship_length <- as.numeric(gillnet$ship_length)

2. 数据分析

  1. 刺网渔船长度分布

    # 计算不同类型渔船长度平均值
    gillnet |> 
      group_by(gear_name) |>
      summarise(
        a = mean(ship_length)
      )
    # A tibble: 7 × 2
      gear_name                 a
      <chr>                 <dbl>
    1 drift_double_nets      31.1
    2 drift_gillnets         28.5
    3 drift_trammel_nets     32.3
    4 set_double_nets        20.3
    5 set_gillnets           25.3
    6 set_trammel_nets       21.5
    7 without_footline_nets  27.0
    ggplot(gillnet, aes(gear_name, ship_length)) + 
      geom_boxplot()

  2. 不同作业类型刺网渔具渔船数量

    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))

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