如何将因子有序变量转换为数字

时间:2017-02-25 14:51:39

标签: r dataframe data-cleaning

我有一个包含79个解释变量的数据集,其中43个是因子。

一些因子变量只是通用标签 - 对于那些我打算使用虚拟变量进行数字表示的人。

因子变量的其他子集包含有序级别,例如:

BsmtQual: Evaluates the height of the basement

       Ex   Excellent (100+ inches) 
       Gd   Good (90-99 inches)
       TA   Typical (80-89 inches)
       Fa   Fair (70-79 inches)
       Po   Poor (<70 inches
       NA   No Basement

我想将这样的因子变量转换为一个数值,它将保持从最低到最高等级的顺序,这意味着在操作之后我想得到类似的东西:

BsmtQual: Evaluates the height of the basement

       Ex records will be replaced with: 6  
       Gd records will be replaced with: 5
       TA records will be replaced with: 4
       Fa records will be replaced with: 3
       Po records will be replaced with: 2
       NA records will be replaced with: 1

(请注意,如果我可以将NA替换为0 - 因为NA实际上并不是指该变量的缺失数据,而是指具有低基准分数的记录)

如何对此替换进行编码?

1 个答案:

答案 0 :(得分:0)

req_var$ExterQual <- revalue(req_var$ExterQual, c("Ex"=5  ,"Gd"=4 , "TA"=3 , "Fa"=2 ,"Po"=1)) 

这里我不会考虑这些数据集中的NA。如果要将数字NA设为0,则在上面的命令中添加“NA”= 0。