在klaR包中使用woe过程时出错

在klaR包中使用woe过程时出错,r,R,我注意到,由于某种原因,klaR包中的过程woe在尝试在data.frame上执行时会产生错误,其中一列是一个级别因子。以下是一个例子: a<-factor(rep(c("BAD", "GOOD"), 5)) b<-factor(rep(c(1,2), 5)) c<-factor(rep(c(2,3), 5)) d<-factor(rep(1,10)) df<-data.frame(a=a, b=b, c=c, d=d) 不会产生任何错误,而 woe(a~., d

我注意到,由于某种原因,klaR包中的过程woe在尝试在data.frame上执行时会产生错误,其中一列是一个级别因子。以下是一个例子:

a<-factor(rep(c("BAD", "GOOD"), 5))
b<-factor(rep(c(1,2), 5))
c<-factor(rep(c(2,3), 5))
d<-factor(rep(1,10))
df<-data.frame(a=a, b=b, c=c, d=d)
不会产生任何错误,而

woe(a~., data = df)
将与以下内容一起崩溃:

Error in applywoes(object[[i]], x.fact[, which(names(x.fact) == names(object)[i])]) : 
  Factor Levels do not match!
In addition: Warning message:
In is.na(e2) : is.na() applied to non-(list or vector) of type 'NULL'
在我看来,问题在于
d
只有一个级别作为因素。尽管如此,灾难的定义应该给出这样一个因子的值0


这是程序执行中的错误还是(出于某种奇怪的原因)故意的行为

我猜这不是故意的行为。从我在Git()上读到的内容来看,像“woe.default”这样的功能通常是从检查几个常见错误案例开始的。您得到的错误显然已被检查。 您可能应该直接联系此包背后的团队以获得正确答案

Error in applywoes(object[[i]], x.fact[, which(names(x.fact) == names(object)[i])]) : 
  Factor Levels do not match!
In addition: Warning message:
In is.na(e2) : is.na() applied to non-(list or vector) of type 'NULL'