首页 > 解决方案 > 如何在r中将文本变量转换为数字变量

问题描述

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

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

记录后的数据文件

我的代码

输出

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

cor(hpNumeric)中的错误:“x”必须是数字

任何建议表示赞赏!

标签: rstatistics

解决方案


最好直接查看您的代码,而不必单击链接来下载东西。如果我正确理解了您的代码(它不完全可见并且您的“输出”不是summary(lm...)命令的输出),那么您已经过度设计了这个问题。

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

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

如果你真的想把你的变量看作一个整数,你可以使用as.integer,但我认为你不应该把这样的事情复杂化。

查看R 中的数据类型以获取有关因子的更多信息。


推荐阅读