我的数据库中有100个列作为因子。它们实际上包含数字,但R认为它们是因素。对于我的项目要求,我想将它们转换为数字。
我可以使用sapply / for循环批量执行此操作。但是我不确定如何检查该变量是否包含数字?我不能只检查is.factor(var_name),因为数据库还包含被视为因子的字符变量。
还有其他方法可以执行以下检查:
if (is.numeric(var_name)) {
convert the variable to numeric
}
我正在寻找类似于" stringasfactors = FALSE" 用于将字符变量保留为字符变量而不是转换为因子。
任何帮助/指针都会非常有用。
答案 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)