繁体   English   中英

在R中将因子转换为数值

[英]Converting factors to numeric in R

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

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

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

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

我正在寻找类似于“ stringasfactors = FALSE”的东西,它用于将字符变量保留为字符变量,而不是转换为因数。

任何帮助/指针将非常有帮助。

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

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM