在R中将因子转换为数字

时间:2015-11-19 13:29:24

标签: r

我的数据库中有100个列作为因子。它们实际上包含数字,但R认为它们是因素。对于我的项目要求,我想将它们转换为数字。

我可以使用sapply / for循环批量执行此操作。但是我不确定如何检查该变量是否包含数字?我不能只检查is.factor(var_name),因为数据库还包含被视为因子的字符变量。

还有其他方法可以执行以下检查:

if (is.numeric(var_name)) {
    convert the variable to numeric
}

我正在寻找类似于" stringasfactors = FALSE"  用于将字符变量保留为字符变量而不是转换为因子。

任何帮助/指针都会非常有用。

1 个答案:

答案 0 :(得分:1)

一种方法是在将所有列转换为type.convert

后使用character
df1[] <- lapply(df1, function(x) type.convert(as.character(x)))

现在,非数字字符列将转换为factor类。我们可以将这些列重新转换回character

df1[] <- lapply(df1, function(x) if(is.factor(x)) as.character(x) else x)