2013-12-17 48 views
0

一些示例代碼首先:R:剪切行爲異常時轉換爲數字

Scores = c(5,4,3,2,1) 
Breaks = c(0,0.6,0.8,1,1.2,100) 
cut(1.19,breaks=Breaks, labels=Scores) 
as.numeric(cut(1.19,breaks=Breaks,labels=Scores) 

第一輸出IST正確地如圖2所示,第二個是錯4.爲什麼會出現這種差異?我實際上需要一個數字值,但是正確的一個......所以我如何正確地轉換它?

回答

4

cut返回factor,2是第4因子水平。你需要的因素首先轉換爲字符,如果你想要的級別標籤爲數學運算:

as.numeric(as.character(cut(1.19,breaks=Breaks,labels=Scores))) 
[1] 2 
+0

我obivously還是真的不明白這個因素的類型。但它像一個魅力,thx :) – MichiZH

1

你需要得到因子的水平對每個元素。嘗試:

f <- cut(1.19,breaks=Breaks,labels=Scores) 
as.numeric(levels(f)[f]) 

(雖然詹姆斯的回答工作也沒關係,這可能你有點幫助與理解因子)