如何在 r 中将分类变量转换为数值


您可以使用以下任意方法将分类变量转换为 R 中的数值变量:

方法 1:将分类变量转换为数值变量

 df$var1 <- unclass(df$var1)

方法 2:将多个分类变量转换为数值

 df[, c(' var1 ', ' var2 ')] <- sapply(df[, c(' var1 ', ' var2 ')], unclass)

方法 3:将所有分类变量转换为数值

 df[sapply(df, is. factor )] <- data. matrix (df[sapply(df, is.factor )])

以下示例展示了如何将每种方法与以下数据框结合使用:

 #create data frame with some categorical variables
df <- data. frame (team=as. factor (c('A', 'B', 'C', 'D')),
                 conf=as. factor (c('AL', 'AL', 'NL', 'NL')),
                 win=as. factor (c('Yes', 'No', 'No', 'Yes')),
                 dots=c(122, 98, 106, 115))

#view data frame
df

  team conf win points
1 A AL Yes 122
2 B AL No 98
3 C NL No 106
4 D NL Yes 115

方法 1:将分类变量转换为数值变量

以下代码显示如何将数据框中的分类变量转换为数值变量:

 #convert 'team' variable to numeric
df$team <- unclass(df$team)

#view updated data frame
df

  team conf win points
1 1 AL Yes 122
2 2 AL No. 98
3 3 NL No 106
4 4 NL Yes 115

请注意,“team”变量的值已转换为数值。

方法 2:将多个分类变量转换为数值

以下代码显示如何将数据框中的多个分类变量转换为数值变量:

 #convert 'team' and 'win' variables to numeric
df[, c(' team ', ' win ')] <- sapply(df[, c(' team ', ' win ')], unclass)

#view updated data frame
df

  team conf win points
1 1 AL 2 122
2 2 AL 1 98
3 3 NL 1,106
4 4 NL 2 115

请注意,“team”和“win”变量的值已转换为数值。

方法 3:将所有分类变量转换为数值

以下代码显示如何将数据框中的所有分类变量转换为数值变量:

 #convert all categorical variables to numeric
df[sapply(df, is. factor )] <- data. matrix (df[sapply(df, is.factor )])

#view updated data frame
df

  team conf win points
1 1 1 2 122
2 2 1 1 98
3 3 2 1 106
4 4 2 2 115

请注意,数据框中每个分类变量的值已转换为数值。

其他资源

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

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

添加评论

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