R如何自动将字符输入强制为数字?

R如何自动将字符输入强制为数字?,r,character,numeric,coerce,R,Character,Numeric,Coerce,我正在为我的数据在randomForest包中训练一个随机林模型。有些变量属于字符类。我很确定,randomForest将只接受因子类和数值类作为输入。所以我认为R会自动将字符强制为数字 为了让我知道这可能会如何影响我的建模结果,是否有人知道R如何自动将字符强制转换为数值类(如算法/规则)?或者任何我可以看的源代码 我使用的是R版本4.0.1 提前谢谢 更新: 我使用 getTree(mod,1,labelVar=TRUE) 我可以看到,如果这些字符变量被转换成因子,那么输出中的“分割点”是一

我正在为我的数据在
randomForest
包中训练一个随机林模型。有些变量属于字符类。我很确定,
randomForest
将只接受因子类和数值类作为输入。所以我认为R会自动将字符强制为数字

为了让我知道这可能会如何影响我的建模结果,是否有人知道R如何自动将字符强制转换为数值类(如算法/规则)?或者任何我可以看的源代码

我使用的是R版本4.0.1

提前谢谢

更新: 我使用

getTree(mod,1,labelVar=TRUE)
我可以看到,如果这些字符变量被转换成因子,那么输出中的“分割点”是一个整数(这意味着它是一个分类变量(请参见:)。但如果不转换为因子,则输出中的“分割点”不是整数


我猜是R强制这些字符变量的值变成数值?但是怎么做呢?

关于R中的随机林,现在还不确定,但我有点确信,它只需要
因子
s。如果它也需要
字符
s,它会将它们转换为因子,而不是数字


在R中没有从字符到数字的明确转换。

我认为,它们被当作伪变量(一个热编码)。换言之,1和0。我想你的结论是,它主要需要因子是不正确的。请参阅本文:我使用
getTree(mod,1,labelVar=TRUE)
进行了检查,我可以看到如果这些字符变量被转换为因子,那么输出中的“分割点”是一个整数(这意味着它是一个分类变量(请参阅:)。但如果不转换为因子,则输出中的“分割点”不是整数。我猜是R强制这些字符变量的值变成数值?但是怎么做呢?再一次猜测:因子基本上是整数向量,其中每个级别对应一个
级别
。因此,我的猜测是,如果你有一个字符向量
c(“1”,“2”,“3”,“1”)
,但是级别是
c(“3”,“2”,“1”)
,那么由因子向量产生的整数将是
c(3,2,1,3)
。检查你要处理的因素的级别(
级别(你的向量)
)-可能会有帮助。