2016-10-25 65 views
-2

我有一個列,我有一個標準。我想編寫一個函數來查看該列中的值屬於哪個類別。R寫函數生成一個新列

column: 
Risk 
0.493 
1 
2 
1.7 
1 
1.7 
0.29 
0.493 
2 
0.493 

criteria: 
Low 
0 0.517 
Med 
0.517 1.859 
High 
1.859 Inf 

Desired output: 
0.493 Low 
1 Med 
2 High 
1.7 Med 
1 Med 
1.7 Med 
0.29 Low 
0.493 Low 
2 High 
0.493 Low 

我試着寫一個函數,但都出到地中海類別:

RiskCat <- function(x) { 
for (i in 1:length(x)){ 
if (i <= 0.517) { 
    print("Reduced") 
} else if (i > 0.517 & i <= 1.859){ 
    print("Med") 
} else if (i > 1.859) { 
    print("High") 
} } } 

感謝您的諮詢! 或者可能有人可以在運行時糾正我的功能,它總是打印Med,我無法弄清楚。

+0

@RonakShah做到這一點其實我想有一個函數,這樣我可以RiskCat(0.7),它告訴我它是醫學,所以它不是在同一個問題所有,但你可以說這個概念是相似的。 –

回答

0

我們可以cut

cut(df1$Risk, breaks = c(-Inf, 0.517, 1.859, Inf), labels = c("Low", "Med", "High")) 
#[1] Low Med High Med Med Med Low Low High Low 
#Levels: Low Med High