使用R查找标量值适合的桶

时间:2014-07-10 23:26:29

标签: r

我想根据它适合的桶分配一个分数。数字行分为四个桶:( - Inf,0],(0,100),(100,1000),(1000) ,Inf)。水桶得分为1到4。

这是我用if / else编写的代码,但似乎R会有一些东西可以做这种任务。

if (min.coverage > 1000) {
    on.score <- 4
}
else if (min.coverage > 100) {
    on.score <- 3
}
else if (min.coverage > 0) {
    on.score <- 2
}
else {
    on.score <- 1
}

更新

感谢MrFlick指出我如何cut by defined intervals的问题。它涵盖了我提出的大部分内容,但没有涵盖如何为每个区间分配不同的分数。

1 个答案:

答案 0 :(得分:0)

cut()函数做了我想要的,但是花了几次尝试来说服它。这是我的工作代码,将分数指定为字符串。 (对我来说已经足够了。)如果我没有进行as.character()转换,当我尝试将其写入输出文件时,我得到了桶索引而不是得分。

on.score <- as.character(cut(
        min.coverage,
        c(-Inf, 0, 100, 1000, Inf),
        labels=c(1, 2, 3, 4)))