【问题标题】:Function To Split Probabilities :: Error in ans[!test & ok] <- rep(no, length.out = length(ans))[!test & : replacement has length zero拆分概率的函数 :: ans[!test & ok] <- rep(no, length.out = length(ans))[!test & 中的错误:替换的长度为零
【发布时间】:2018-03-27 14:48:11
【问题描述】:

我正在尝试将 R 中逻辑回归“glm”模型的概率拆分为不同的名义类别。

我有以下功能。

nominal_score_test <- function(class_prob) {
             ifelse(class_prob  >= 0.00 & class_prob <= 0.38, '2.Almost Certain',
                ifelse(class_prob > 0.38 & class_prob <= 0.85, '3.Likely',
                    ifelse(class_prob > 0.85 &  class_prob <= 0.91, '3.Likely',
                        ifelse(class_prob > 0.91 & class_prob <= 1.00, '2.Almost Certain',
                                 NULL
                   ))))

}

当我将此函数应用于数据框中的列时,出现错误。

nominal_score_test(estimates_glm_tbl$class_prob)

Error in ans[!test & ok] <- rep(no, length.out = length(ans))[!test & : 
replacement has length zero
In addition: Warning message:
In rep(no, length.out = length(ans)) :    

我真的不明白我该如何纠正。任何帮助将不胜感激。

提前致谢!!!

【问题讨论】:

    标签: r statistics probability modeling glm


    【解决方案1】:

    您的函数需要一个双精度(class_prob 参数),但在您的调用 nominal_score_test(estimates_glm_tbl$class_prob) 中,您给它一个双精度向量,这会产生错误。

    您需要使用 apply 系列中的一个函数将 nominal_score_test 函数单独应用于向量的每个元素。要简单地返回一个包含您的描述的新向量,请尝试

    sapply(X = estimates_glm_tbl$class_prob, FUN = nominal_score_test)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-21
      • 2015-07-25
      • 1970-01-01
      • 2017-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-27
      相关资源
      最近更新 更多