首页 文章

如何在新数据集中正确地将因子转换为数字

提问于
浏览
1

我在我的数据集中将因子转换为数字,如下所示

library(dplyr) 
df = data.frame(level= c( 'low', 'medium', 'high', 'very high'))

df$level = as.numeric(revalue(df$level, c('low' = 1, 'medium' =2, 'high'= 3, 'very high'=4)))
df

没关系 . 当我尝试将此规则应用于新数据集时出现问题(我对模型进行了跟踪并希望预测新数据)

newdude = data.frame(level = c( 'high'))
newdude$level = as.numeric(revalue(newdude$level, c('low' = 1, 'medium' =2, 'high'= 3, 'very high'=4)))
Error
The following `from` values were not present in `x`: low, medium, very high 
> newdude
  level
1     1

我得到'1'而不是'3'我无法做到充足

newdude$level = as.numeric(revalue(newdude$level, c( 'high'= 3)))

因为我事先无法知道它将采取什么 Value

怎么解决?

1 回答

  • 2

    试试吧

    newdude = data.frame(level = factor('high', levels = c('low', 'medium', 'high', 'very high')))
    
    newdude$level
    [1] high
    Levels: low medium high very high
    as.numeric(newdude$level)
    [1] 3
    

相关问题