"Цель (у) не найдена или не является числовой"

Я пытаюсь использовать пакет smbinning в программном обеспечении R, чтобы найти оптимальные привязки к определенной переменной. Выполнение команды

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

возвращает следующее сообщение об ошибке:

"Цель (у) не найдена или не числовая"

Что здесь происходит? FLAG_TARGET является числовым, и я уже пытался изменить формат данных на целое число, но это не работает.

Есть ли решение этой проблемы?

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

Другие вопросы по тегам