【发布时间】:2021-07-13 23:37:03
【问题描述】:
我正在使用模型来创建预测。该模型给了我一个从 0 到 6 的因子。
我正在尝试将此值报告为该值,但是当我尝试将其转换为数字或将其放入数据框中时,它会将 0 值转换为 1 并将所有其他值向上转换...有时.
out = as.factor(c(0,1,2,3,4,5))
出
[1] 0 1 2 3 4 5
等级:0 1 2 3 4 5
as.numeric(out)
[1] 1 2 3 4 5 6
如果每次都将值增加 1,我会简单地减去 1,但如果我的模型只返回非零值,它不会增加值:
out = as.factor(c(1,2,3,4,5,6))
as.numeric(out)
[1] 1 2 3 4 5 6
有没有一种简单的方法可以从因子中获取原始值,而不是 R 将 0 转换为 1 并调整其余值?
谢谢,
RStudio 1.3.1093 r 4.0.3
【问题讨论】:
-
as.numeric(as.character(out))。如果没有as.char部分,它会返回整数索引的数量;请参阅as.numeric(factor(c('a','1')))与as.numeric(as.character(factor(c('a','1'))))(应该发出警告)。 -
您应该从中注意到 “获取原始值...并调整其余值” 是一个冒险的命题:如果一切都是从 0 开始的并且一切都顺序正确,并且没有任何间隙,那么这可能是安全的......但是,如果不满足任何这些条件,那么您将默默地破坏您的数据。
-
感谢 cmets。我在这里找到了解决方案:stackoverflow.com/questions/3418128/…
标签: r type-conversion factors