将类别变量数值化,可以参考woe给赋值
在r里面的实现代码如下:
library(proto) # 先把需要的数值化的类别变量挑出来,习惯sql的直接写名称,所以使用rsql
library(gsubfn)
library(DBI)
library(RSQLite)
library(sqldf)
library(tcltk)
woe_dt1<-sqldf("select y,x300,x301,
x302,x303,x308,x309,x310,x311,x312,x313,x314,x315,
x316,x317,x318,x319,x320,x321,x411,x415,x416,x417,
x426,x438,x439,x440,x444,x447,x448,x449,x450,x452,
x453,x454,x455,x487,x488,x883,x884,x885,x886,x1031,
x1032,x1033,x1034,x1035,x1036,x1037,x1038,x1039,x1040,x1041,
x1042,x1043,x1044,x1045,x1046,x1047,x1050,x1051,x1052,x1107,
x1108,x1109,x1110,x1112,x1113,x1114,x1115,x1116,x1117,
x1118,x1119,x1120,x1121,x1122,x1123,x1124,x1125,x1126,x1127,
x1128,x1129,x1130,x1131,x1132,x1133,x1134,x1135,x1136,x1137,
x1138 from traindata",row.names=TRUE)
install.packages("devtools") # 加载woe
library(devtools)
install_github("riv","tomasgreif")
library(woe)
woe_dt1$y<-as.factor(woe_dt1$y) # 变量类型修改,目标变量要改成factor类型
woe_dt1$x300 <-as.character(woe_dt1$x300) # 其他的输入变量可以直接修改成 character类型
woe_dt1$x301 <-as.character(woe_dt1$x301)
. . .
iv.mult(woe_dt1,woe_dt1$y)
如此就可以得到各变量关于 y的woe数值
** 剩余的问题是:
1) 不知道怎么完成的把输出结果存在本地,直接save 出现格式混乱,无间隔 // 目前是手动分段复制黏贴
2) 如何自动地让类别变量直接得到对应的数值新变量,查看现有的r-woe文档,似乎还无此功能
用vba批量生成 重新赋值r语句 ,非常费工夫