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

Alpha多样性计算:如何整理数据并计算Shannon、Simpson等指数

植物样地Alpha多样性计算的R实操指南

可行性说明

完全可以用R快速计算Shannon、Simpson等Alpha多样性指数,生态领域有成熟工具包支持,无需手动计算。

数据格式说明

你当前的Excel是宽格式(列=样带/样地,行=物种,单元格=丰度),部分R包支持直接处理这种格式;转成长格式(每行对应一个“样地-物种”的丰度记录)会更灵活,适配更多后续分析需求。两种方式都给你列出来,按需选择。

具体操作步骤

1. 安装并加载必备包

第一次使用需要安装包,之后直接加载即可:

# 安装包(仅第一次运行)
install.packages(c("readxl", "tidyverse", "vegan"))

# 加载包
library(readxl)
library(tidyverse)
library(vegan)

2. 读取Excel数据

假设你的Excel文件名为plant_data.xlsx,放在当前工作目录(用getwd()查看目录,setwd()切换目录):

# 读取数据,第一列是物种名,第一行是样带名
data_wide <- read_excel("plant_data.xlsx", sheet = 1)

用head(data_wide)检查数据,确认物种列和样地列结构正确。

选项A:直接用宽格式计算多样性

vegan包的diversity()函数可直接按列计算,效率很高:

# 提取丰度数据(去掉物种名称列,替换成你实际的列名)
abundance_data <- select(data_wide, -物种名称)

# 按样地(列)计算Shannon和Simpson指数
alpha_diversity <- data.frame(
  样地名称 = colnames(abundance_data),
  Shannon = diversity(abundance_data, index = "shannon", margin = 2),
  Simpson = diversity(abundance_data, index = "simpson", margin = 2)
)

# 查看结果
print(alpha_diversity)

注意:这里的Simpson指数是1-D(D为优势度),值越大代表多样性越高,和“有效物种数”逻辑一致。

选项B:转成长格式后计算

如果后续要做Beta多样性等分析,长格式更适配:

# 宽格式转长格式
data_long <- pivot_longer(
  data_wide,
  cols = -物种名称, # 保留物种列,其他列转为样地和丰度
  names_to = "样地名称",
  values_to = "丰度"
)

# 按样地分组计算多样性
alpha_diversity_long <- data_long %>%
  group_by(样地名称) %>%
  summarize(
    Shannon = diversity(丰度, index = "shannon"),
    Simpson = diversity(丰度, index = "simpson")
  )

# 查看结果
print(alpha_diversity_long)

结果解释

  • Shannon指数:同时考虑物种丰富度(数量)和均匀度(个体分布),值越大样地物种多样性越高。
  • Simpson指数:衡量优势物种占比,这里计算的是1-D,值越大说明无绝对优势物种,多样性越高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 21:47:22