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

如何预处理数据框适配R语言vegan包,统计样方年度物种信息

R 植被调查数据统计及宽格式转换实现方案

注:你提供的测试数据集子集未包含year字段,运行代码前请确保你的完整数据集已添加对应年份列

需求梳理

你需要完成两个核心任务:

  • 按年份、样方分组统计独有的物种总数,以及对应的物种名录
  • 将处理后的数据转换为宽格式,满足vegan包计算多样性指数的输入要求

原代码问题说明

你之前编写的代码存在逻辑错误:count()是独立的分组统计函数,不能直接在summarise()中调用,且现有逻辑也无法实现去重统计独有物种、拼接物种名录的需求。

完整实现代码

# 加载依赖包
library(dplyr)
library(tidyr)

# 1. 生成样方-年份的物种统计结果(符合你给出的示例输出结构)
comp_summary <- comp %>%
  # 先去重,排除同一样方同一年多次采集到的同一物种的重复记录
  distinct(site, plot, year, species) %>%
  group_by(site, plot, year) %>%
  summarise(
    total_species = n(),
    species = paste(unique(species), collapse = ", ")
  ) %>%
  ungroup()

# 2. 转换为vegan包所需的宽格式(行对应样方/年份,列对应物种,值为物种出现标记)
comp_vegan <- comp %>%
  distinct(site, plot, year, species) %>%
  # 标记物种出现为1
  mutate(occur = 1) %>%
  pivot_wider(
    id_cols = c(site, plot, year),
    names_from = species,
    values_from = occur,
    # 未出现的物种填充为0,符合vegan输入规范
    values_fill = 0
  )

使用说明

  • 查看comp_summary即可得到你需要的分样方分年份的物种统计结果
  • 直接提取comp_vegan中物种对应的列生成矩阵,即可传入vegan的diversity()等函数计算各类多样性指数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:36:03