增益函数的结果不能强制类型'double'


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)]

我输入了上面的代码,但看到了此错误消息其中.max(gainsV(的错误:(列表(对象不能被强制为类型"double">

请告知。谢谢

这应该是一个注释,但注释的格式选项太有限,无法在复杂对象上显示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

我怀疑这不是你心目中的结构,但由于没有描述这项工作的目标,我无法确定这一点。

相关内容

  • 没有找到相关文章

最新更新