增益函数的结果不能强制为“ double”类型

时间:2018-12-02 16:21:39

标签: r

sortedSL=sort(iris$Sepal.Length)
gainsV<-NULL
splitV<-NULL
library(gains)
for(i in 1:NROW(sortedSL))
{
  splitVal=sortedSL[i]
  iris$new=0
  if(sum(iris$Sepal.Length>splitVal)>0)
  {
    iris[iris$Sepal.Length>splitVal,]$new=1
  }
  gainsV<-c(gainsV,gains(iris$Sepal.Length, iris$new))
  splitV <-c(splitV, splitVal)
}
finalSplitV<-splitV[which.max(gainsV)]

我输入上面的代码,但看到此错误消息 其中which.max(gainsV)的错误:   (列表)对象不能强制输入“ double”

请告知。谢谢。

1 个答案:

答案 0 :(得分:0)

这应该是注释,但是注释的格式设置太受限制,无法在复杂对象上显示str()的结果。您遇到了错误,但是却忽略了我怀疑是重要的警告;

There were 50 or more warnings (use warnings() to see the first 50)

...来自以下代码行:

  gainsV<-c(gainsV,gains(iris$Sepal.Length, iris$new))

看着

 str(gainsV)
 #============
List of 2265
 $ depth            : num [1:2] 99 100
 $ obs              : int [1:2] 149 1
 $ cume.obs         : int [1:2] 149 150
 $ mean.resp        : num [1:2] 5.85 4.3
 $ cume.mean.resp   : num [1:2] 5.85 5.84
 $ cume.pct.of.total: num [1:2] 0.995 1
 $ lift             : num [1:2] 100 74
 $ cume.lift        : num [1:2] 100 100
 $ mean.prediction  : num [1:2] 1 0
 $ min.prediction   : num [1:2] 1 0
 $ max.prediction   : num [1:2] 1 0
 $ conf             : chr "none"
 $ optimal          : logi FALSE
 $ num.groups       : int 2
 $ percents         : logi FALSE
 $ depth            : num [1:2] 97 100
 $ obs              : int [1:2] 146 4
 $ cume.obs         : int [1:2] 146 150
 $ mean.resp        : num [1:2] 5.88 4.38
 $ cume.mean.resp   : num [1:2] 5.88 5.84
 $ cume.pct.of.total: num [1:2] 0.98 1
 $ lift             : num [1:2] 101 75
 $ cume.lift        : num [1:2] 101 100
 $ mean.prediction  : num [1:2] 1 0
 $ min.prediction   : num [1:2] 1 0
 $ max.prediction   : num [1:2] 1 0
 $ conf             : chr "none"
 $ optimal          : logi FALSE
 $ num.groups       : int 2
 $ percents         : logi FALSE
 $ depth            : num [1:2] 97 100
 $ obs              : int [1:2] 146 4
 $ cume.obs         : int [1:2] 146 150
 $ mean.resp        : num [1:2] 5.88 4.38
 #### output at your console would continue for much longer

我怀疑这不是您想到的结构,但是由于这项工作的目标并未描述,因此我无法确定地知道这一点。