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

R语言按ID分组计算分位数分组失效仅返回全局结果问题求助

问题出错原因

核心原因是dplyr和plyr两个包的summarize()函数产生了命名冲突:如果你的R环境中先加载了dplyr、后加载了plyr,plyr包的同名函数会覆盖dplyr的summarize(),而plyr版本的summarize()无法识别dplyr生成的分组结构,只会返回全局汇总的结果,也就是你看到的仅一行的统计值。
从你提供的str(ex_long)输出可以看到,ex_long已经成功按照ID分为86个组,排除数据本身分组错误的可能。

解决方法
  • 显式指定调用dplyr的summarize函数,修改代码如下:
tab <- ex_long %>% 
  group_by(ID) %>% 
  dplyr::summarize(
    q25 = quantile(val, probs = qnt[1]), 
    q75 = quantile(val, probs = qnt[2]),
    Mediana = quantile(val, probs = qnt[3]), 
    q2.5 = quantile(val, probs = qnt[4]), 
    q97.5 = quantile(val, probs = qnt[5])
  )
  • 若不需要使用plyr包功能,可先卸载plyr包后再运行原代码:
detach("package:plyr", unload = TRUE)
  • 重启R会话,加载包时保证dplyr在plyr之后加载,也可直接加载tidyverse套件规避冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:06:07