实际数据处理中,通常会遇到按照一定范围对数据进行分组统计。本文我们看R内置的cut函数如何实现该功能。
cut函数介绍
cut函数可以依据给定的数据范围对数据进行分组。另外cut函数还提供了label参数,可以把数值向量转换为因子值。
下面我们介绍下cut函数的参数,语法形式如下:
# cut(x, breaks, labels = NULL, include.lowest = FALSE, right = TRUE)
-
x : 需要转换的数值向量
-
breaks: 可是分为几组的数值,或表示范围的数值向量
-
labels: 给结果增加标签,如果不指定,默认为数值范围
-
include.lowest,是否包括范围下限,默认为FALSE
-
right, 是否包括范围上限,默认为FALSE
-
ordered_result 布尔值,是否为顺序因子
当传递 breaks=n
参数时,整个x向量会被分为n
组。
下面看几个示例。
breaks 参数为单值
d1 <- c(1:9)
d1
table(cut(d1, 3))
# 返回结果
# (0.992,3.67] (3.67,6.33] (6.33,9.01]
# 3 3 3
breaks 参数为范围
d2 <- c(90:99,97.5,99.5,98.5,96.5,99)
d2
table(cut(d2,c(90:100), include.lowest=TRUE, right=TRUE))
# [90,91] (91,92] (92,93] (93,94] (94,95] (95,96] (96,97] (97,98] (98,99] (99,100]
# 2 1 1 1 1 1 2 2 3 1
labels参数应用
labels参数可传入因子级别,则cut函数返回因子类型。
d3 = c(160,165,170,175,178,180,182)
cut_res = cut(d3, 3, labels = c('S', 'XS', 'XXS'))
table(cut_res)
# 返回结果
# S XS XXS
# 2 1 4
本文参考链接:https://blog.csdn.net/neweastsun/article/details/121807879