Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library(data.table)
- library(magrittr)
- library(plyr)
- library(dplyr)
- library(Information)
- dt <- data.table:::data.table(response = rbinom(100, 1, 0.35), x1 = rnorm(100),
- x2 = sample(LETTERS[1:3], 100, TRUE))
- IV <- Information:::create_infotables(dt, y = "response")
- closeAllConnections()
- new_dt <- names(IV$Tables) %>% plyr:::llply(function(varName){
- if (grepl("\\[[^]]*\\]", IV$Tables[[varName]][[varName]][1]))
- {
- boundaries <- IV$Tables[[varName]][[varName]] %>% gsub("\\[|\\]", "", .) %>%
- strsplit(',') %>% do.call(rbind, .) %>% {c(.[,1], .[nrow(.),2])} %>% as.numeric
- cut(floor(dt[[varName]]*100)/100, boundaries, include.lowest = TRUE) %>%
- {IV$Tables[[varName]][["WOE"]][as.integer(.)]} %>% return
- } else
- {
- plyr:::mapvalues(dt[[varName]], IV$Tables[[varName]][[varName]],
- IV$Tables[[varName]][["WOE"]]) %>% as.numeric %>% return
- }
- }) %>% set_names(names(IV$Tables)) %>% dplyr:::as_data_frame %>%
- mutate(response = dt$response)
Advertisement
Add Comment
Please, Sign In to add comment