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

R语言不等长分组下计算NEE相对响应并构建新数据框

R实现分组计算NEE相对响应值

以下两种方法均可自动适配不同日期的Plot数量差异,无需额外处理样本量不一致的问题:

方法1:使用tidyverse(dplyr)实现(代码更简洁)

# 加载依赖包
library(dplyr)

result <- df %>%
  # 按日期分组
  group_by(TIME) %>%
  summarise(
    # 按公式计算相对响应值
    NEE = (mean(NEE[Treat == "D"], na.rm = TRUE) - mean(NEE[Treat == "C"], na.rm = TRUE)) / mean(NEE[Treat == "C"], na.rm = TRUE)
  ) %>%
  ungroup()

如果你的数据不存在缺失值,可以去掉代码中的na.rm = TRUE参数

方法2:使用R基础函数实现(无需额外安装包)

# 按日期拆分数据
df_split <- split(df, df$TIME)

# 遍历每个日期分组计算结果
result <- do.call(rbind, lapply(df_split, function(per_date){
  mean_d <- mean(per_date$NEE[per_date$Treat == "D"], na.rm = TRUE)
  mean_c <- mean(per_date$NEE[per_date$Treat == "C"], na.rm = TRUE)
  data.frame(
    TIME = unique(per_date$TIME),
    NEE = (mean_d - mean_c) / mean_c
  )
}))
# 重置行名
rownames(result) <- NULL

运行上述任意代码即可得到仅包含TIME和计算后NEE的目标数据框,第一个日期的计算结果与你给出的示例公式完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:09:00