如何将数字转换为 r 中的因子(附示例)


在 R 中,可以使用两种方法将数值变量转换为阶乘变量:

方法一:使用as.factor()

 df$factor_variable <- as. factor (df$numeric_variable)

这会将数值变量转换为因子变量,其级别数等于原始数值变量中唯一值的数量。

方法2:使用cut()

 df$factor_variable <- cut(df$numeric_variable, 3 , labels=c(' lab1 ', ' lab2 ', ' lab3 '))

此特定示例将通过将数值变量“切割”为 3 个等距值,将数值变量转换为阶乘变量。

以下示例展示了如何在 R 中使用以下数据框实际使用每种方法:

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'C', 'D'),
                 points=c(12, 15, 22, 29, 35, 24, 11, 24))

#view data frame
df

  team points
1 to 12
2 to 15
3 B 22
4 B 29
5 C 35
6 C 24
7 C 11
8 D 24

#view structure of data frame
str(df)

'data.frame': 8 obs. of 2 variables:
 $ team: chr "A" "A" "B" "B" ...
 $ points: num 12 15 22 29 35 24 11 24

示例 1:使用 as.factor() 将数字转换为因子

以下代码显示如何使用as.factor()列从数字转换为因子:

 #convert points column from numeric to factor
df$points <- as. factor (df$points)

#view updated data frame
df

  team points
1 to 12
2 to 15
3 B 22
4 B 29
5 C 35
6 C 24
7 C 11
8 D 24

#view updated structure of data frame
str(df)

'data.frame': 8 obs. of 2 variables:
 $ team: chr "A" "A" "B" "B" ...
 $ points: Factor w/ 7 levels "11","12","15",..: 2 3 4 6 7 5 1 5

使用str()函数可视化数据框的结构,我们可以看到点列现在是一个具有 7 个不同级别的因子,代表列中的 7 个唯一数值。

示例 2:使用 cut() 将数字转换为因子

以下代码显示如何使用cut()点列从数值变量转换为 3 级因子变量:

 #convert points column from numeric to factor with three levels
df$points <- cut(df$points, 3 , labels=c(' OK ', ' Good ', ' Great '))

#view updated data frame
df

  team points
1 A OK
2 A OK
3 B Good
4 B Great
5 C Great
6 C Good
7 C OK
8 D Good

#view updated structure of data frame
str(df)

'data.frame': 8 obs. of 2 variables:
 $ team: chr "A" "A" "B" "B" ...
 $ points: Factor w/ 3 levels "OK","Good","Great": 1 1 2 3 3 2 1 2

从结果中我们可以看到, points变量已经从数值变量转换为具有三个级别和以下标签的因子变量:

  • “好的”
  • “好的”
  • “伟大的”

请注意,我们在本例中选择使用三个级别,但您可以通过将cut()函数中的3替换为另一个值,将数字变量切割为任意多个级别。

其他资源

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

R中如何将数字转换为字符
如何在 R 中将因子转换为数字
R中如何将因子转换为字符

添加评论

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