2016-10-25 35 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