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

如何用R计算植物物种的相对频率、存在时平均丰度及总平均丰度

R实现植物物种丰度统计指标批量计算

针对你拥有的1415个样方、37种植物的丰度数据集,用R的tidyverse工具链可以高效完成所有统计指标计算,完全替代手动Excel操作。以下是完整实现步骤:

1. 加载必要包

我们用到dplyr做数据汇总,tidyr做格式转换,knitr生成规范表格:

library(tidyverse)
library(knitr)

2. 示例数据(替换为你的真实数据集即可)

你的示例数据可直接使用:

Quadrat <- c("A", "B", "C", "D", "E")
Species1 <- c(23, 41, 32, 58, 0)
Species2 <- c(1, 5, 0, 0, 20)
Species3 <- c(80, 90, 75, 58, 65)
df <- data.frame(Quadrat, Species1, Species2, Species3)

3. 数据格式转换

将宽格式数据转为长格式,方便按物种分组计算:

df_long <- df %>%
  pivot_longer(
    cols = -Quadrat,  # 排除样方列,其余均为物种丰度列
    names_to = "Species",
    values_to = "Abundance"
  )

4. 批量计算所有统计指标

按物种分组,一次性计算你需要的所有指标:

species_stats <- df_long %>%
  group_by(Species) %>%
  summarise(
    # 相对频率:物种出现的样方数/总样方数
    Relative_Frequency = sum(Abundance > 0) / n(),
    # 存在时的平均丰度(0视为NA)及标准误
    Mean_Abundance_Present = mean(Abundance[Abundance > 0], na.rm = TRUE),
    SE_Present = sd(Abundance[Abundance > 0], na.rm = TRUE) / sqrt(sum(Abundance > 0)),
    # 总平均丰度(0保留)及标准误
    Mean_Abundance_Total = mean(Abundance),
    SE_Total = sd(Abundance) / sqrt(n())
  ) %>%
  ungroup()

5. 生成规范表格

用kable生成可读性强的表格,可直接导出或复制:

kable(species_stats, digits = 3,
      col.names = c("物种名称", "相对频率", "存在时平均丰度", "存在时标准误", "总平均丰度", "总标准误"))

关键说明

  • 若你的物种列不是以Species开头,只需调整pivot_longer的cols参数(比如cols = starts_with("你的物种列前缀"))即可,代码完全适配37种植物的规模。
  • 所有计算均为批量处理,无需手动逐物种计算,1415个样方的数据集几秒内即可完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 10:42:23