2013-12-10 15 views
0

我在R A變量看起來像這樣的R - 水平搞亂煩人的事情,簡單的問題

> q 
[1] 0.4231 
Levels: 0.4231 

我想擺脫的那個瘋狂的程度的事情。我只是想要價值。我該怎麼做呢。我試過

> as.numeric(q) 
[1] 1 

哪個不行。

例如,我希望做一些簡單的算術,如q+1,這是我目前做不到

> q+1 
[1] NA 
Warning message: 
In Ops.factor(q, 1) : + not meaningful for factors 
+1

愚蠢的問題:爲什麼它首先是一個因素?看起來你正在讀錯了什麼? –

回答

3

我想你已經忘記做一些簡單的步驟。 首先,如果要將q轉換爲數字,則as.numeric(q)僅返回q,就像它是數字一樣,而不將q本身轉換爲數字。其次,你不能直接從一個因素到數字;你需要將它轉換爲字符,然後是數字。

這就是下面我想:

我複製你的例子:

q<-as.factor(0.423) 
q 
[1] 0.423 
Levels: 0.423 
as.numeric(q) 
[1] 1 
q+1 
[1] NA 
Warning message: 
In Ops.factor(q, 1) : + not meaningful for factors 

要告訴你,你不能直接改變一個因素的數字:看Q + 1怎麼還不歐盟

q<-as.numeric(q) 
q+1 
[1] 2 

最後,這是一個因數q轉換爲數字字符串的正確方法:

q<-as.numeric(as.character((q))) 
q+1 
[1] 1.423