You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中合并行列并计算多维度飞蛾平均数量

飞蛾数据集处理方案(R语言)

第一步:数据预处理

原数据集包含大量无效空行,先过滤掉这些行:

library(tidyverse)

# 筛选出TreeNumber不为空的有效数据行
treedata_clean <- treedata01 %>%
  filter(!is.na(TreeNumber))

1. 合并单棵树的3行数据,计算单棵树指标

每棵树对应Top/Middle/Bottom3条记录,按树的唯一标识分组合并为1行,计算核心指标:

  • 各物种的平均数量(3个采样位置的均值)
  • 总物种数(该树至少在一个位置采集到的物种数量)
tree_summary <- treedata_clean %>%
  group_by(Date, Field, TreeNumber, TreeType, TreeAge) %>%
  summarize(
    # 计算每棵树各物种的平均数量
    across(starts_with("Species"), mean, na.rm = TRUE),
    # 统计该树有采集记录的物种总数
    total_species = sum(across(starts_with("Species"), ~ any(.x > 0))),
    .groups = "drop"
  )

print(tree_summary)

输出结果中每一行对应一棵完整的树,包含各物种平均数量和总物种数。

2. 计算每种树木类型的飞蛾平均数量

按TreeType分组,可通过两种方式计算均值:

方案1:基于单棵树的汇总结果计算树种平均

tree_type_avg <- tree_summary %>%
  group_by(TreeType) %>%
  summarize(
    across(starts_with("Species"), mean, na.rm = TRUE),
    avg_total_species = mean(total_species, na.rm = TRUE),
    .groups = "drop"
  )

print(tree_type_avg)

方案2:直接基于原始采样数据计算树种平均(所有采样位置的均值)

tree_type_raw_avg <- treedata_clean %>%
  group_by(TreeType) %>%
  summarize(
    across(starts_with("Species"), mean, na.rm = TRUE),
    .groups = "drop"
  )

print(tree_type_raw_avg)

3. 计算每个采样位置的飞蛾平均数量

按Sample.Location分组,计算所有采样点的各物种平均:

location_avg <- treedata_clean %>%
  group_by(Sample.Location) %>%
  summarize(
    across(starts_with("Species"), mean, na.rm = TRUE),
    .groups = "drop"
  )

print(location_avg)

关于数据格式转换的说明

你的数据集确实是宽格式,别人建议的pivot_longer是将宽格式转为长格式,适合聚焦物种维度的分析,比如统计单个物种在不同树种/位置的数量:

treedata_long <- treedata_clean %>%
  pivot_longer(
    cols = starts_with("Species"),
    names_to = "Species",
    values_to = "Count"
  )

# 示例:按树种和物种统计平均数量
species_tree_avg <- treedata_long %>%
  group_by(TreeType, Species) %>%
  summarize(avg_count = mean(Count, na.rm = TRUE), .groups = "drop")

你之前代码的问题说明

  1. 列名错误:数据中采样位置列是Sample.Location(点号分隔),不是Sample Location(空格分隔)
  2. 管道符依赖:使用|>需要R版本4.1+,建议加载tidyverse包后用%>%更兼容
  3. 逻辑偏差:先按树种+位置+日期求和再取平均,不符合你要的"单棵树合并"或"树种平均"的核心需求

内容的提问来源于stack exchange,提问作者oriole1231

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 02:47:05