📜  在 R 编程中将向量划分为范围 - cut()函数(1)

📅  最后修改于: 2023-12-03 15:07:48.036000             🧑  作者: Mango

在 R 编程中将向量划分为范围 - cut()函数

介绍

在 R 编程中,我们经常需要将数值型向量划分为几个范围。一个常见的例子是将年龄分为不同的年龄组。cut() 函数是 R base 包中的一个函数,可以帮助我们将一个数值型向量划分为预定数量的范围。

语法

cut(x, breaks, labels = NULL, include.lowest = FALSE, right = TRUE, dig.lab = 3, ordered_result = FALSE)

参数说明:

  • x:要被划分的向量,必须为数值型。
  • breaks:用来划分向量的断点,可以是一个数值型向量,在这些值之间划分;也可以是一个整数,表示要划分的段数。
  • labels:可选参数,用于定义每个范围的标签。
  • include.lowest:如果为 TRUE,在最小值和第一个断点之间的值将被划分为第一个范围。
  • right:当等于 TRUE 时,右边表示的是该间隔的上限,划分出的范围不包含上限;当等于 FALSE 时,右边表示的是该间隔的下限,划分出的范围包含上限。
  • dig.lab:标签中保留小数的位数。
  • ordered_result:如果为 TRUE,则返回一个有序的因子,否则返回一个无序的因子。
示例

我们来看一个简单的示例,将年龄划分成三个等距的范围:

# 创建一个年龄向量
age <- c(10, 15, 20, 25, 30, 35, 40)

# 将年龄划分成三个等距的范围
age_range <- cut(age, breaks = 3, include.lowest = TRUE)

# 查看结果
age_range

输出结果如下:

[1] [9.96,20) [9.96,20) [9.96,20) [20,30)   [20,30)   [30,40)   [30,40)  
Levels: [9.96,20) < (20,30) < (30,40]

我们可以看到,将年龄划分成三个等距的范围后,得到了一个有序因子向量。每个范围的标记包括左侧的断点和右侧的断点,范围是左开右闭(左侧包含,右侧不包含)的。设置 include.lowest 参数为 TRUE,使该范围包括左侧的最小值。

如果我们想使用自定义标签来为每个范围命名,只需提供 labels 参数:

# 创建一个年龄向量
age <- c(10, 15, 20, 25, 30, 35, 40)

# 自定义标签
age_labels <- c("Youth", "Middle Aged", "Elderly")

# 将年龄划分成三个等距的范围,并自定义标签
age_range <- cut(age, breaks = 3, include.lowest = TRUE, labels = age_labels)

# 查看结果
age_range

输出结果如下:

[1] Youth       Youth       Youth       Middle Aged Middle Aged Elderly     Elderly    
Levels: Youth < Middle Aged < Elderly

我们可以看到,现在每个范围都被命名为了自定义的标签。

结论

cut() 函数是在 R 编程中将向量划分为范围的实用函数。 你可以利用它来将数值型向量划分为几个等距的范围,并为每个范围提供自定义的标签。