2011-01-25 73 views
54

我正在使用重塑包來操作數據框。當使用熔化函數時,它將我的值列因式分解,這是一個問題,因爲這些值的子集是我希望能夠在其上執行操作的整數。轉換因子爲整數

有誰知道強制一個因子到一個整數的方法嗎?使用as.character()會將其轉換爲正確的字符,但是我無法立即對其執行操作,並且as.integer()as.numeric()會將其轉換爲系統正在存儲該因子的數字,這沒有幫助。

謝謝!

傑夫

+2

這與http://stackoverflow.com/questions/3418128/r-how-to-convert-a-factor-to-an-integer-numeric-in-r-without-a-loss-of -informat – Aaron 2011-01-25 21:20:17

回答

53

你可以結合這兩個功能;強迫字符從那裏到數學運算:

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

我試過這個,但是我得到了警告信息:「通過脅迫引入了NAs。」這是什麼意思? – 2011-01-25 20:24:30

+0

或者這是否意味着其中一些不是以數字開頭的? – 2011-01-25 20:27:29

62

直接從幫助頁面報價爲factor

要變換系數f到原來的數值,as.numeric(levels(f))[f]建議,並略高於as.numeric(as.character(f))更有效。