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

R语言计算玉米雌雄花期曲线下面积 如何构造随时间变化的种群向量c

玉米雌雄花花期曲线下面积(AUC)计算解决方案

你需要的变量c是随时间变化的累计开花株数占总株数的比例,该值需要分别针对雄花、雌花的花期数据统计生成,不可共用同一组值。

1. 数据预处理(计算累计开花比例)

你提供的数据集每行对应单株的开花日期,需要先按日期分组统计开花株数,再计算累计占比:

library(dplyr)
library(tidyr)

# 处理雄花花期数据
male_data <- XAUC %>%
  count(Date.floraison.mâle.graph, name = "daily_count") %>%
  arrange(Date.floraison.mâle.graph) %>%
  mutate(
    cum_count = cumsum(daily_count),
    cum_prop = cum_count / sum(daily_count) # 雄花对应的累计比例,即雄花计算的c值
  )
a <- male_data$Date.floraison.mâle.graph
c_male <- male_data$cum_prop

# 处理雌花花期数据
female_data <- XAUC %>%
  count(Date.floraison.femelle.graph, name = "daily_count") %>%
  arrange(Date.floraison.femelle.graph) %>%
  mutate(
    cum_count = cumsum(daily_count),
    cum_prop = cum_count / sum(daily_count) # 雌花对应的累计比例,即雌花计算的c值
  )
b <- female_data$Date.floraison.femelle.graph
c_female <- female_data$cum_prop

2. 计算AUC

调用DescTools的AUC函数时,分别传入各自对应的日期和累计比例:

library(DescTools)
AUCmale <- AUC(x = a, y = c_male, method = "trapezoid")
AUCfemale <- AUC(x = b, y = c_female, method = "trapezoid")
Airdiff <- AUCmale - AUCfemale

优化方案(可选):统一时间轴提升精度

如果要避免雌雄花花期时间范围不一致导致的计算偏差,可以生成覆盖所有花期的统一时间轴,补全累计比例后再计算:

# 生成覆盖所有雌雄花日期的连续时间轴
full_date <- seq(min(c(a, b)), max(c(a, b)), by = 1)

# 补全雄花累计比例
male_full <- data.frame(date = full_date) %>%
  left_join(male_data %>% select(Date.floraison.mâle.graph, cum_prop), 
            by = c("date" = "Date.floraison.mâle.graph")) %>%
  fill(cum_prop, .direction = "down") %>%
  mutate(cum_prop = replace(cum_prop, is.na(cum_prop), 0))

# 补全雌花累计比例
female_full <- data.frame(date = full_date) %>%
  left_join(female_data %>% select(Date.floraison.femelle.graph, cum_prop), 
            by = c("date" = "Date.floraison.femelle.graph")) %>%
  fill(cum_prop, .direction = "down") %>%
  mutate(cum_prop = replace(cum_prop, is.na(cum_prop), 0))

# 用统一时间轴计算AUC
AUCmale_full <- AUC(x = full_date, y = male_full$cum_prop, method = "trapezoid")
AUCfemale_full <- AUC(x = full_date, y = female_full$cum_prop, method = "trapezoid")
Airdiff_full <- AUCmale_full - AUCfemale_full

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 22:36:03