为区间创建标签

问题描述

我正在尝试使用 cut 创建一个标签,这是示例

> cut(c(1,5,10,15,160),c(0,Inf))
[1] (0,5]    (0,5]    (5,10]   (10,15]  (15,Inf]
Levels: (0,5] (5,10] (10,15] (15,Inf]

我想自动创建这样的标签

"1~5" "6~10" "11~15" "15+"

有什么办法可以自动完成吗?

解决方法

如果您想在不手动指定标签的情况下自动执行此操作,您可以执行以下操作:

vec <- c(1,5,10,15,160)
breaks <- c(0,Inf)
n <- length(breaks)
labels <- paste(breaks[-n] + 1,breaks[-1],sep = '~')
labels[length(labels)] <- paste0(breaks[n - 1],'+')
cut(vec,breaks,labels)

#[1] 1~5   1~5   6~10  11~15 15+  
#Levels: 1~5 6~10 11~15 15+

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...