我有一个分类概率数组
post <- c(0.73,0.69,0.44,0.55,0.67,0.47,0.08,0.15,0.45,0.35)
我想要检索预测的课程。 现在我用
predicted <- function(post) {
function(threshold) {plyr::aaply(post, 1,
function(x) {if(x >= threshold) '+' else '-'})}}
但这似乎是R会有一种语法。
是否有一些更直接的索引表达式?
答案 0 :(得分:7)
pred <- c("-", "+")[1+(post > 0.5)]
答案 1 :(得分:6)
正如@joran所说:
predicted <- function(post)
function(threshold)
ifelse(post>threshold,"+","-")
我发现函数的嵌套有点令人困惑。
ifelse(post>threshold,"+","-")
看起来非常简单,您甚至可能不需要将其打包到函数中。
或者你可以使用
predicted <- function(post,threshold=0.5,alt=c("+","-"))
ifelse(post>threshold,alt[1],alt[2])
可选地
predicted <- function(post,threshold=0.5,alt=c("+","-"))
alt[1+(post<=threshold)]
可能稍微快一些(post>threshold
给出一个逻辑向量,当加到1时强制为0/1,结果为#34;低于&#34; 2为&#34;上述&#34)。或者你可以改变alt
的顺序,正如@DWin在他的回答中所做的那样。