R语言cut分箱超出breaks阈值的结果如何实现美观打印?
R中分箱自动处理上下限超出值的实现方案
你需要的功能R生态有成熟的实现方案,以下是两种常用实现方式:
方案1:基础R原生实现,无需额外安装包
只需要给cut函数补充正负无穷作为边界,自定义标签即可匹配需求,代码示例:
data <- seq(5, 95, 10) my_breaks <- c(30,40,50,60,70) # 配置right=FALSE为左闭右开,和你给出的示例规则完全一致 result <- cut( data, breaks = c(-Inf, my_breaks, Inf), labels = c( paste0("<", my_breaks[1]), paste0("[", head(my_breaks, -1), ", ", tail(my_breaks, -1), ")"), paste0(">", tail(my_breaks, 1)) ), right = FALSE )
方案2:使用第三方封装函数,无需手动拼接标签
推荐使用sjmisc包的cut_boundaries()函数,直接传入自定义分箱阈值即可自动生成符合要求的分箱标签,调用示例:
# 首次使用先安装包 install.packages("sjmisc") library(sjmisc) data <- seq(5, 95, 10) result <- cut_boundaries( data, breaks = c(30,40,50,60,70), right = FALSE )
两种方案运行得到的分箱结果都和你给出的预期输出完全匹配。
内容的提问来源于stack exchange,提问作者Dario
相关产品推荐
相关产品推荐

