2017-08-02 15 views
0

我試圖在R軟件中使用smbinning軟件包來查找某個變量的最佳配置。運行命令「找不到目標(y)或者它不是數字」-P包含 - R

result=smbinning(df=bop,y="FLAG_TARGET",x="VL_TOTL_REND",p=0.05) 

返回以下錯誤消息:

「目標(Y)未找到或者它不是數字」

這到底是怎麼回事? FLAG_TARGET是數字,我已經嘗試將數據格式更改爲整數,但它不起作用。

有沒有解決這個問題的方法?

回答

0

這是因爲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

相關問題