我正在尝试使用R软件中的smbinning包来找到某个变量的最佳分区。运行命令
result=smbinning(df=bop,y="FLAG_TARGET",x="VL_TOTL_REND",p=0.05)
返回以下错误消息:
“找不到目标(y)或它不是数字”
这里发生了什么? FLAG_TARGET
是数字,我已经尝试将数据格式更改为整数,但它不起作用。
这个问题有解决方案吗?
答案 0 :(得分:1)
这是因为bop
不是数据框,您必须将bop转换为as.data.frame(bop)
的数据框。如果你查看完整的smbinning代码(https://github.com/cran/smbinning/blob/master/R/smbinning.R#L490),就会有这个块
i=which(names(df)==y) # Find Column for dependant
j=which(names(df)==x) # Find Column for independant
if (!is.numeric(df[,i]))
{
return("Target (y) not found or it is not numeric")
}
将y设置为目标列名称,将x设置为预测器列名称后,尝试运行
i = which(names(bop) == y)
j = which(names(bop) == x)
is.numeric(bop[,i])
如果bop不是数据帧,它将返回FALSE
。运行bop_dataframe <- as.data.frame(bop)
并运行
is.numeric(bop_dataframe[,i])
它应该返回TRUE