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

R语言cut函数区间设置疑问:如何生成指定分组区间与正确频数

解决R语言自定义区间频数表问题

不需要更换函数,调整cut()的参数就能同时得到正确的区间名称和频数,还可以扩展生成包含累积频数、相对频数及累积百分比的完整频数表。

步骤1:生成正确区间的频数表

使用cut()时,通过自定义breaks和labels参数匹配你的需求,同时确保数据被正确划分:

x <- c(66, 80, 89, 71, 80, 88, 82, 98, 83, 100, 72, 70, 64, 75, 79, 82, 88, 71, 85, 94, 93, 80, 77, 83)
data_framex <- data.frame(col1 = x)

# 定义区间断点和自定义标签
breaks <- seq(59, 109, 10)
labels <- c("(60,69]", "(70,79]", "(80,89]", "(90,99]", "(100,109]")

# 生成分组并统计频数
interval_table <- table(cut(data_framex$col1, breaks = breaks, right = TRUE, labels = labels))
interval_table

运行后输出:

(60,69]  (70,79]  (80,89]  (90,99] (100,109] 
       2        7       11        3        1 

参数说明:

  • breaks = seq(59, 109, 10):设置断点为59、69、79、89、99、109,确保60-69的数被划入第一个区间,100被划入最后一个区间。
  • right = TRUE:指定区间为左开右闭,比如(59,69]会包含64、66这类数,同时70会被划入下一个区间。
  • labels = labels:用自定义的区间名称替换默认的断点标签,匹配你想要的格式。

步骤2:生成完整的频数表

如果需要添加累积频数、相对频数和累积百分比,可以将频数表转换为数据框后计算:

# 转换为数据框并整理
freq_df <- as.data.frame(interval_table)
colnames(freq_df) <- c("区间", "频数")

# 计算累积频数
freq_df$累积频数 <- cumsum(freq_df$频数)

# 计算相对频数(保留两位小数)
freq_df$相对频数 <- round(freq_df$频数 / sum(freq_df$频数), 2)

# 计算累积百分比(保留一位小数)
freq_df$累积百分比 <- round(cumsum(freq_df$相对频数) * 100, 1)

print(freq_df, row.names = FALSE)

运行后输出完整频数表:

区间 频数 累积频数 相对频数 累积百分比
  (60,69]    2        2     0.08        8.3
  (70,79]    7        9     0.29       37.5
  (80,89]   11       20     0.46       83.3
  (90,99]    3       23     0.12       95.8
(100,109]    1       24     0.04      100.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:05:31