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


我们可以使用以下语法将因子向量转换为 R 中的数值向量:

 numeric_vector <- as. numeric (as. character (factor_vector))

我们必须首先将因子向量转换为字符向量,然后转换为数值向量。这确保了数值向量包含实际数值而不是因子水平。

本教程提供了该功能实际使用的几个示例。

示例 1:将因子向量转换为数值

以下代码显示如何将因子向量转换为数值向量:

 #define factor vector
factor_vector <- factor(c(1, 5, 7, 8))

#convert factor vector to numeric vector
numeric_vector <- as. numeric (as. character (factor_vector))

#view class
class(numeric_vector)

[1] "digital"

示例 2:将因子列转换为数字

以下代码显示如何将因子数据框中的特定列转换为数值:

 #create data frame
df <- data. frame (a = factor(c(1, 5, 7, 8)),
b = c(28, 34, 35, 36))

#convert column 'a' from factor to numeric
df$a <- as. numeric (as. character (df$a))

#view new data frame
df

  ab
1 1 28
2 5 34
3 7 35
4 8 36

#confirm class of numerical vector
class(df$a)

[1] "digital"

示例 3:将多因子列转换为数字

以下代码显示如何将因子数据框中的所有因子列转换为数值:

 #create data frame
df <- data. frame (a = factor(c(1, 5, 7, 8)),
                 b = factor(c(2, 3, 4, 5)),
                 c = c('A', 'B', 'C', 'D'),
                 d = c(45, 56, 54, 57))

#display classes of each column
sapply(df, class)

       abcd
"factor" "factor" "character" "numeric" 

#identify all factor columns
x <- sapply (df, is. factor )

#convert all factor columns to numeric
df[, x] <- as. data . frame ( apply (df[, x], 2, as.numeric ))

#display classes of each column
sapply (df, class)

        abcd
"numeric" "numeric" "character" "numeric"

此代码对数据框列进行了以下更改:

  • A栏:从邮递员到数字化
  • b栏:从邮递员到数字化
  • c 列:不变(因为它是一个字符)
  • d 列:未更改(因为它已经是数字)

使用apply()sapply()函数,我们能够仅将因子列转换为数字列,并保持所有其他列不变。

其他资源

如何将字符转换为R中的因子
R中如何将因子转换为字符
如何在R中将字符转换为时间戳

添加评论

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