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

R语言计算quantiles分位差及POE指标可视化代码咨询

R语言计算POE指标分位数差实现方案

首先确保你已将原始数据导入为R数据框,命名为poe_df,列对应为R、Year、Time、POE、VALUE。

方案1:tidyverse生态实现(推荐)

步骤1:数据预处理

# 加载依赖包
library(dplyr)

# 将POE列的百分号格式转为数值
poe_df <- poe_df %>%
  mutate(POE_num = as.numeric(sub("%", "", POE)))

步骤2:分组计算分位数差

默认按年份、时间分组计算两种常用分位数差:90%分位范围(95%分位值减10%分位值)、四分位距(75%分位值减25%分位值),可按需调整分组维度和分位数区间。

quantile_diff <- poe_df %>%
  group_by(Year, Time) %>%
  summarise(
    # 90%分位范围
    range_90 = VALUE[POE_num == 95] - VALUE[POE_num == 10],
    # 四分位距IQR
    IQR = VALUE[POE_num == 75] - VALUE[POE_num == 25],
    # 可选保留中位数做参考
    median = VALUE[POE_num == 50],
    .groups = "drop"
  )

# 输出计算结果
print(quantile_diff)

步骤3:分位数差可视化(可选)

library(ggplot2)

ggplot(quantile_diff, aes(x = Time, group = 1)) +
  geom_ribbon(aes(ymin = median - range_90/2, ymax = median + range_90/2), fill = "lightblue", alpha = 0.3) +
  geom_ribbon(aes(ymin = median - IQR/2, ymax = median + IQR/2), fill = "steelblue", alpha = 0.5) +
  geom_line(aes(y = median), color = "darkblue", linewidth = 1) +
  labs(title = "POE指标分位数差时序表现", y = "POE值", x = "时间") +
  theme_minimal()

方案2:基础R实现(无需额外依赖)

# 预处理POE列为数值
poe_df$POE_num <- as.numeric(sub("%", "", poe_df$POE))
# 生成唯一分组
groups <- unique(poe_df[,c("Year", "Time")])
# 遍历分组计算分位数差
quantile_diff <- do.call(rbind, lapply(1:nrow(groups), function(i) {
  cur_y <- groups$Year[i]
  cur_t <- groups$Time[i]
  sub_df <- poe_df[poe_df$Year == cur_y & poe_df$Time == cur_t,]
  data.frame(
    Year = cur_y,
    Time = cur_t,
    range_90 = sub_df$VALUE[sub_df$POE_num == 95] - sub_df$VALUE[sub_df$POE_num == 10],
    IQR = sub_df$VALUE[sub_df$POE_num == 75] - sub_df$VALUE[sub_df$POE_num == 25],
    median = sub_df$VALUE[sub_df$POE_num == 50]
  )
}))

注意事项

  • 若数据包含多个R维度的分组,只需在分组条件中新增R列即可,比如tidyverse方案中改成group_by(R, Year, Time)
  • 如需自定义分位数差的区间,修改对应代码块中匹配的POE_num数值即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:51:00