如何在 r 中使用 cut() 函数


R 中的cut()函数可用于将一系列值切入 bin 并为每个 bin 指定标签。

该函数使用以下语法:

剪切(x,中断,标签= NULL,…)

金子:

  • x :向量名称
  • Breaks :要进行的中断次数或断点向量
  • labels :结果箱的标签

以下示例展示了如何在不同场景中使用此函数,并使用 R 中的以下数据帧:

 #create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'),
                 points=c(4, 7, 8, 12, 14, 16, 20, 26, 36))

#view data frame
df

  player points
1 to 4
2 B 7
3 C 8
4 D 12
5 E 14
6 F 16
7 G 20
8:26 a.m.
9 I 36

示例 1:根据断点数量切割向量

以下代码演示如何使用cut()函数创建一个名为“category”的新列,该列将点列分成四个大小相等的组:

 #create new column that places each player into four categories based on points
df$category <- cut(df$points, breaks= 4 )

#view updated data frame
df

  player points category
1 to 4 (3.97.12]
2 B 7 (3.97.12]
3 C 8 (3.97.12]
4 D 12 (3.97.12]
5 E 14 (12.20]
6 F 16 (12.20]
7 G 20 (12.20]
8:26 a.m. (20.28]
9 I 36 (28.36]

由于我们指定了Breaks=4 ,所以cut()函数将点列中的值分为四个大小相等的组。

cut()函数的执行方式如下:

  • 首先,他找到了点数列中最大和最小值的差值(36 – 4 = 32)。
  • 然后他将该差值除以 4 (32 / 4 = 8)
  • 结果是四个箱,每个箱宽度为 8。

注意:由于cut() 文档中的以下功能,最低间隔是 3.97 而不是 4:

当将暂停指定为单个数字时,数据范围将被划分为等长的暂停块,然后外部限制将远离该范围 0.1%,以确保异常值落在暂停间隔内。

示例2:根据特定断点切割向量

以下代码演示如何使用cut()函数创建一个名为category的新列,该列根据特定断点向量剪切点列

 #create new column based on specific break points
df$category <- cut(df$points, breaks=c(0, 10, 15, 20, 40))

#view updated data frame
df

  player points category
1 to 4 (0.10]
2 B 7 (0.10]
3 C 8 (0.10]
4 D 12 (10.15]
5 E 14 (10.15]
6 F 16 (15.20]
7 G 20 (15.20]
8:26 a.m. (20.40)
9 I 36 (20.40]

cut()函数根据我们提供的断点的特定向量将每个玩家分类。

示例 3:使用特定断点和标签剪切向量

以下代码演示如何使用cut()函数创建一个名为“category”的新列,该列根据带有自定义标签的特定断点向量来剪切点列

 #create new column based on values in points column
df$category <- cut(df$points,
                   breaks=c(0, 10, 15, 20, 40),
                   labels=c(' Bad ', ' OK ', ' Good ', ' Great '))

#view updated data frame
df

  player points category
1 A 4 Bad
2 B 7 Bad
3 C 8 Bad
4 D 12 OK
5 E 14 OK
6 F 16 Good
7 G 20 Good
8:26 A.M. Great
9 I 36 Great

新的类别列根据分数列中的相应值将每个玩家分为“差”、“好”、“好”或“优秀”。

注意:标签的数量必须始终比断点的数量少 1,以避免出现以下错误:

 Error in cut.default(df$points, breaks = c(0, 10, 15, 20, 40), labels = c("Bad",: 
  lengths of 'breaks' and 'labels' differ

其他资源

以下教程解释了如何使用 R 中的其他常用函数:

如何在 R 中使用 tabulate() 函数
如何在 R 中使用 split() 函数
如何在 R 中使用 match() 函数
如何在R中使用replicate()函数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注