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

在R中使用cut()结合quantile()对连续列按四分位分桶的实现方法

R语言连续变量按四分位数分桶实现方案

首先修正示例数据的样本量不一致问题,否则数据框会创建报错:

df <- data.frame(
    Age = sample(18:98, 1000, replace = TRUE),
    Weight = sample(80:250, 1000, replace = TRUE)
)

实现代码

你可以通过自定义分桶函数批量处理所有连续字段,生成和示例格式一致的分桶结果:

# 自定义四分位分桶函数
quantile_bin <- function(x) {
  # 计算五等分分位点(0%、25%、50%、75%、100%)
  breaks <- quantile(x, probs = c(0, 0.25, 0.5, 0.75, 1), na.rm = TRUE)
  # 调整首尾分位点,生成和示例一致的半开区间
  breaks[1] <- breaks[1] - 0.1
  breaks[length(breaks)] <- breaks[length(breaks)] + 0.1
  # 调用cut分桶,dig.lab控制数值显示精度
  return(cut(x, breaks = breaks, dig.lab = 4))
}

# 批量处理所有数值型字段,生成分桶后的数据框
df_binned <- data.frame(lapply(df, function(col) {
  if (is.numeric(col)) quantile_bin(col) else col
}))

效果验证

运行以下代码查看前几行结果,和你给出的示例效果完全匹配:

head(df_binned)

可选调整

  • 如果需要保留原字段,可以直接对指定列新增分桶结果:
    df$Age_binned <- quantile_bin(df$Age)
    df$Weight_binned <- quantile_bin(df$Weight)
    
  • 调整dig.lab的参数值可以修改区间数值的显示小数位数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:00:00