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

求R脚本:基于不同发芽起始点按3周周期计算树高平均值

解决方案

核心思路是按花盆分组,基于after.germ(发芽后周数)字段将数据划分为以3周为单位的独立周期,再对每个周期计算树高平均值,彻底避开滚动平均的连续叠加逻辑。

假设你的树高字段名为height,以下是具体实现步骤:

步骤1:确保after.germ为数值型

先检查并转换字段类型,避免分组出错:

# 若字段为字符/因子型,转换为数值
df$after.germ <- as.numeric(df$after.germ)

步骤2:为每个花盆生成独立周期标签

用整数除法给每个after.germ值分配所属周期编号(周期从0开始计数,可按需调整):

library(dplyr)

df <- df %>%
  group_by(pot) %>%
  mutate(
    # 0-2周为周期0,3-5周为周期1,以此类推
    cycle = floor(after.germ / 3)
  ) %>%
  ungroup()

步骤3:按花盆+周期计算平均树高

通过聚合操作得到每个独立周期的平均值,还可补充周期的起止周数方便解读:

cycle_avg <- df %>%
  group_by(pot, cycle) %>%
  summarise(
    avg_height = mean(height, na.rm = TRUE),
    start_after_germ = min(after.germ, na.rm = TRUE),
    end_after_germ = max(after.germ, na.rm = TRUE)
  ) %>%
  ungroup()

关键细节说明

  • 该方式是完全独立的周期划分,周期之间无重叠,完美匹配你的需求,和滚动平均的连续窗口逻辑完全不同。
  • 若after.germ从1开始计数(如发芽后第1周、第2周),调整周期计算式为cycle = floor((after.germ - 1)/3),即可让1-3周为周期0、4-6周为周期1。
  • na.rm = TRUE用于处理缺失测量值,可根据你的数据情况决定是否保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:10:41