2016-11-07 53 views
0

我有两个数据帧:“缓存”值是否会导致逻辑回归失败?

df_bad

die_y仓

1 11 JD

2 13 I

df_good

die_y仓

1 11 JD

2 13 I

我运行逻辑回归:

model_lr < - 列车(BIN〜,数据= df_bad,方法= 'GLM',家庭= '二项式'。)

model_lr < - 列车(仓〜,数据= df_good,方法= 'GLM',家庭= '二项式')

第二成功(其直接创建)

df_good < - data.frame(die_y = C( 11,13),bin = as.factor(c('JD','I')))

第一次失败(从较大的数据框中切片),错误: 结果中的一个或多个因子级别没有数据:' BA','dU','other','TT','XD'

由于在我看来数据帧是相同的,算法如何知道其他潜在因素值不在数据?整个混乱从原始数据中的错误开始,所以我想我会尝试将原始数据削减到一个可用的数据集并从那里开始,除了算法似乎“记住”我所拥有的并将其用作另一个失败的借口。即使删除原始源数据也不会改变结果。是什么赋予了?我怎样才能让算法忘记之前发生的事情? TIA

+3

阅读'help(“droplevels”)'。 – Roland

+1

数据框存储您的因素的所有级别,即使您没有每个级别的案例。正如罗兰所说,使用微滴。 –

+0

非常感谢 - 添加以下代码: df_bad < - droplevels(df_bad) 和它的工作 – kmccarty

回答

1

添加代码:df_bad < - droplevels(df_bad)

和作品!

+0

当您创建子集,运行'STR()'来看看你在新集已经发生的事情! – sconfluentus