在R

时间:2015-07-22 12:57:51

标签: r if-statement vector

所以我试图用R编码我的欺诈检测算法。我有一个数值(欺诈),与某个用户在矢量中提交欺诈的可能性成正比。如果出现“欺诈行为”的敏感性,我该如何创建一个新栏目,表明它是HIGH,MEDIUM还是LOW。 (即如果0.6>'欺诈行为>> 0.3,那么它是低,如果在0.6和0.8 MED之间,则为HIGH,如果它是0.8或更高。

这是我的输入和预期输出

敏感性是:非常低 - 0,低 - 0.3,中 - 0.6,高 - 0.8

输入(df)

ID fraudval
1  0.4
2  0.8
3  0.2
4  0.6

输出(df)

ID fraudval test
1  0.4      LOW
2  0.8      HIGH
3  0.2      VERY LOW
4  0.6      MEDIUM

提前致谢! :d

1 个答案:

答案 0 :(得分:1)

我会使用cut

R> df$test <- cut(df$fraudval, c(0,.3,.6,.8,Inf),
+                c("VERY LOW", "LOW", "MED", "HIGH"), right=FALSE)
R> d
  ID fraudval     test
1  1      0.4      LOW
2  2      0.8     HIGH
3  3      0.2 VERY LOW
4  4      0.6      MED