我正在使用重塑包來操作數據框。當使用熔化函數時,它將我的值列因式分解,這是一個問題,因爲這些值的子集是我希望能夠在其上執行操作的整數。轉換因子爲整數
有誰知道強制一個因子到一個整數的方法嗎?使用as.character()
會將其轉換爲正確的字符,但是我無法立即對其執行操作,並且as.integer()
或as.numeric()
會將其轉換爲系統正在存儲該因子的數字,這沒有幫助。
謝謝!
傑夫
我正在使用重塑包來操作數據框。當使用熔化函數時,它將我的值列因式分解,這是一個問題,因爲這些值的子集是我希望能夠在其上執行操作的整數。轉換因子爲整數
有誰知道強制一個因子到一個整數的方法嗎?使用as.character()
會將其轉換爲正確的字符,但是我無法立即對其執行操作,並且as.integer()
或as.numeric()
會將其轉換爲系統正在存儲該因子的數字,這沒有幫助。
謝謝!
傑夫
你可以結合這兩個功能;強迫字符從那裏到數學運算:
> fac <- factor(c("1","2","1","2"))
> as.numeric(as.character(fac))
[1] 1 2 1 2
我試過這個,但是我得到了警告信息:「通過脅迫引入了NAs。」這是什麼意思? – 2011-01-25 20:24:30
或者這是否意味着其中一些不是以數字開頭的? – 2011-01-25 20:27:29
直接從幫助頁面報價爲factor
:
要變換系數f到原來的數值,as.numeric(levels(f))[f]
建議,並略高於as.numeric(as.character(f))
更有效。
這與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