我想根据它适合的桶分配一个分数。数字行分为四个桶:( - 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的问题。它涵盖了我提出的大部分内容,但没有涵盖如何为每个区间分配不同的分数。
答案 0 :(得分:0)
cut()
函数做了我想要的,但是花了几次尝试来说服它。这是我的工作代码,将分数指定为字符串。 (对我来说已经足够了。)如果我没有进行as.character()
转换,当我尝试将其写入输出文件时,我得到了桶索引而不是得分。
on.score <- as.character(cut(
min.coverage,
c(-Inf, 0, 100, 1000, Inf),
labels=c(1, 2, 3, 4)))