我有一个向量,该向量定义了所有可用于建模的变量,我将其称为model.data.dim.names
model.data.dim.names <- c('loan_term','lien_position','loan_amount', 'fico_score_bin', 'cltv_bin' ,'dti_bin','sub_channel', 'p_occupancy_type', 'customer_type', 'property_type', 'p_region')
但是,在建模时,我们将其中一些变量汇总到bin中,然后有时还会将它们进一步分组。假设,如果我将某些值加仓,我将调用新变量
cltv if binned is called cltv_bin
if it is grouped further then new column is called cltv_bin_bin
说我的最终模型形式是这样的:
modelform <- "abc ~ p_occupancy_type + customer_type + cltv_bin_bin + fico_score_bin_bin + dti_bin"
您可以使用以下方式以模型形式获取变量:
variables <- strapplyc(gsub(" ", "", format(modelform)), "-?[0-9.]+|[a-zA-Z0-9._]+", simplify = unlist)[-1]
然后,您可以使用以下命令查找model.data.dim.names中是否存在该变量:
sapply(variables, agrep, model.data.dim.names, ignore.case = T, max.distance = 4)
我想做的是,仅更新模型中使用的元素,并让其他对象在model.data.dim.names中保持相同顺序以获取此信息:
model.data.dim.names <- c('loan_term','lien_position','loan_amount', 'fico_score_bin_bin', 'cltv_bin_bin' ,'dti_bin','sub_channel_bin', 'p_occupancy_type', 'customer_type', 'property_type', 'p_region')
请让我知道是否需要其他信息