如何在R中将文本变量转换为数字变量

时间:2019-01-19 21:26:08

标签: r statistics

我遇到了将文本变量转换为数字变量的问题。我认为我成功地构建了具有多个级别的虚拟变量。但是,当我尝试读取数据文件时,这些变量的类别仍然是文本。

这是我的代码,输出和数据文件:

datafile after recording

my code

output

之后,当我尝试生成相关值时,它仍然显示错误:

cor(hpNumeric)错误:'x'必须为数字

任何建议都值得赞赏!

1 个答案:

答案 0 :(得分:0)

最好直接查看您的代码,而不是必须单击链接来下载内容。如果我正确理解了您的代码(该代码不完全可见,并且您的“输出”不是summary(lm...)命令的输出),则说明您对该问题进行了过度设计。

您的第一行已经将变量编码为因子,这将告诉R在执行回归等操作时自动创建虚拟变量。通过应用对比矩阵,您要做的是将因子再次转换为原始数值。这就是您真正需要的:

df$x <- factor(<your variable data here as in your example>) 
m <- lm(y ~ x ..., data = df)

如果您确实希望将变量视为整数,则可以使用as.integer,但我认为您不应该使这样的事情复杂化。

请查看data types in R,以获取有关因素的更多信息。