我想使用smbinning.gen
将smbinning的结果应用于新的数据集当我使用随机选择的记录和所有相同的列时,新数据集工作正常。当我将smbinning.gen应用于重新排序列的新文件时,我得到一个“未定义的列”消息 - 但仍然是与smbinning.gen
所需的列名相同的列名我想解决这个问题,并且在其他地方看不到任何提示。是smbinning?或者,我愿意承认,这是我的R代码吗?
chileancredit.train=subset(chileancredit,FlagSample==1)
result$ivtable
Cutpoint CntRec CntGood CntBad CntCumRec CntCumGood CntCumBad PctRec GoodRate BadRate 1< = 17 1138 909 229 1138 909 229 0.2405 0.7988 0.2012 2< = 30 621 530 91 1759 1439 320 0.1312 0.8535 0.1465 3< = 63 1064 985 79 2823 2424 399 0.2249 0.9258 0.0742 4> 63 1427 1377 50 4250 3801 449 0.3016 0.9650 0.0350 5缺失482 435 47 4732 4236 496 0.1019 0.9025 0.0975 6总计4732 4236 496 NA NA NA 1.0000 0.8952 0.1048 赔率LnOdds WoE IV 1 3.9694 1.3786 -0.7662 0.1893 2 5.8242 1.7620 -0.3828 0.0223 3 12.4684 2.5232 0.3784 0.0277 4 27.5400 3.3156 1.1708 0.2626 5 9.2553 2.2252 0.0804 0.0006 6 8.5403 2.1448 0.0000 0.5025
据记载,我没有遇到任何问题:
chileancredit.train=subset(chileancredit,FlagSample==1)
result=smbinning(df=chileancredit.train,y="FlagGB",x="TOB",p=0.05) # Run and save result
chileancredit.train=
+ smbinning.gen(chileancredit.train,结果,“gTOB”)#更新培训样本 摘要(chileancredit.train $ gTOB)
<00> 00 Miss 01&lt; = 17 02&lt; = 30 03&lt; = 63 04&gt; 63 587 1724 716 1201 1572但我注意到结果的属性col_id。如果我在另一个顺序中使用列的子集,则涉及smbinning.gen的列会出错。
result$col_id
temp2 <- data.frame(TOB=chileancredit$TOB)
temp2 <- smbinning.gen(df=temp2, result, chrname="TEMP_BIN")
[1] 2 因子误差(df [,ncol],labels = blab): 无效的'标签';长度4应为1或1
在另一种情况下(另一个文件),移动列,我收到错误消息
[.data.frame
中的错误(df ,, col_id):选择了未定义的列
这是两个文件的数据。
STR(TEMP2) 'data.frame':7702 obs。 1个变量: $ TOB:int 44 79 102 NA 109 183 172 76 136 171 ... STR(chileancredit.train $ TOB) int [1:5800] 44 79 102 NA 109 183 172 76 136 171 ...