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

计算ingressosmensuals_uc十分位数仅得1值的问题排查

解决十分位数分组变量全为1的问题

问题原因

你的数据框当前处于按NUMERO分组的状态(从数据结构的grouped_df类可看出),分组状态下使用mutate(ntile(...))时,ntile会对每个分组单独计算十分位数。但你的每个分组仅包含1条数据,所以每个分组的十分位数只能返回1,最终所有结果都是1。

解决方案

在计算十分位数前,先使用ungroup()取消数据框的分组状态,再执行ntile计算:

Unitatsconsum_2021 <- Unitatsconsum_2021 %>%
  ungroup() %>%  # 取消分组
  mutate(decils_renda_uc = ntile(ingressosmensuals_uc, 10)) %>%
  mutate(decils_renda_uc = factor(decils_renda_uc, 
                                  levels = c(1:10), 
                                  labels = c("1r","2n","3r","4t","5è","6è","7è","8è","9è","10è")))

验证步骤

你可以先运行以下代码确认当前数据的分组状态:

# 查看数据类
class(Unitatsconsum_2021)
# 查看分组变量
groups(Unitatsconsum_2021)

执行ungroup()后,数据类会变为tbl_df/data.frame,此时ntile会基于整个数据集计算十分位数,就能得到正确的分组结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 01:37:25