将因子转换为整数

时间:2011-01-25 20:15:25

标签: r integer coercion

我正在使用reshape包操作数据框。当使用融合函数时,它会对我的值列进行分解,这是一个问题,因为这些值的子集是我希望能够对其执行操作的整数。

有没有人知道将一个因子强制转换为整数的方法?使用as.character()会将其转换为正确的字符,但是我无法立即对其执行操作,as.integer()as.numeric()会将其转换为系统将该因子存储为的数字,这没什么用。

谢谢!

杰夫

2 个答案:

答案 0 :(得分:71)

直接从factor的帮助页面引用:

要将因子f转换为其原始数值,建议使用as.numeric(levels(f))[f],效率略高于as.numeric(as.character(f))

答案 1 :(得分:56)

你可以结合这两个功能;强迫人物从数字到数字:

> fac <- factor(c("1","2","1","2"))
> as.numeric(as.character(fac))
[1] 1 2 1 2