R写函数生成一个新列

时间:2016-10-25 03:58:08

标签: r function if-statement for-loop dataframe

我有一个专栏,我有一个标准。我想编写一个函数来查看该列中的值属于哪个类别。

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

我尝试编写一个函数,但所有都出现在Med:

类别中
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而我无法弄明白。

1 个答案:

答案 0 :(得分: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