如何在 r 中通过 continue 创建分类变量


您可以使用 R 中的cut()函数从连续变量创建分类变量。

该函数使用以下基本语法:

 df$cat_variable <- cut(df$continuous_variable,
                       breaks=c(5, 10, 15, 20, 25),
                       labels=c(' A ', ' B ', ' C ', ' D '))

请注意, breaks指定连续变量除以的值, labels指定赋予新分类变量值的标签。

以下示例展示了如何在实践中使用此语法。

示例:从 R 中的连续体创建分类变量

假设我们在 R 中有以下数据框:

 #create data frame
df <- data. frame (team=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'),
                 points=c(78, 82, 86, 94, 99, 104, 109, 110))

#view data frame
df

  team points
1 To 78
2 B 82
3 C 86
4 D 94
5 E 99
6 F 104
7 G 109
8:11 a.m.

目前,是连续变量。

我们可以使用cut()函数将其切割为分类变量:

 #add new column that cuts 'points' into categories
df$cat <- cut(df$points,
              breaks=c(70, 80, 90, 100, 110),
              labels=c('Bad', 'OK', 'Good', 'Great'))

#view updated data frame
df

  team points cat
1 To 78 Bad
2 B 82 OK
3 C 86 OK
4 D 94 Good
5 E 99 Good
6 F 104 Great
7 G 109 Great
8:110 Great

我们创建了一个名为cat的新分类变量,它根据数据框中的每个团队的得分将其排名为“Bad”(差)、“OK”(好)、“Good”(好)或“Excellent”(优秀)。

我们可以使用class()函数来检查这个新变量的类:

 #check class of 'cat' column
class(df$cat)

[1] “factor”

我们看到变量cat是一个因素。

我们还可以使用table()函数来统计cat变量中每个类别的出现次数:

 #count occurrences of each category in 'cat' variable
table(df$cat)
  Bad OK Good Great 
    1 2 2 3

请注意,如果不向cut()函数提供标签参数,R 将简单地使用区间值的范围作为标签:

 #add new column that cuts 'points' into categories
df$cat <- cut(df$points, breaks=c(70, 80, 90, 100, 110))

#view updated data frame
df

  team points cat
1 A 78 (70.80]
2 B 82 (80.90]
3 C 86 (80.90]
4 D 94 (90,100]
5 E 99 (90,100]
6 F 104 (100,110]
7 G 109 (100,110]
8:110 (100,110]

在某些情况下,您可能更喜欢使用自定义标签。

其他资源

以下教程解释了如何在 R 中执行其他常见操作:

如何在 R 中将分类变量转换为数值
如何在 R 中创建分类变量
如何在 R 中绘制分类数据

添加评论

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