R语言如何识别回归公式中被用作因子变量的特征
实现识别回归公式中factor包裹变量的自定义函数
我们可以利用R公式对象自带的属性解析功能,精准匹配factor()调用并提取内部的变量名,代码实现如下:
find_factor_vars <- function(formula) { # 解析公式,标记特殊函数factor的位置 parsed_terms <- terms(formula, specials = "factor") factor_loc <- attr(parsed_terms, "specials")$factor # 无factor变量时返回空字符向量 if (length(factor_loc) == 0) return(character(0)) # 提取变量名并去除factor()包裹 raw_factor_terms <- rownames(attr(parsed_terms, "factors"))[factor_loc] gsub("^factor\\((.*)\\)$", "\\1", raw_factor_terms) }
效果测试
代入你提供的示例公式:
reg_formula <- invest ~ market + stock + factor(company) find_factor_vars(reg_formula)
运行后直接返回结果:
[1] "company"
该实现也支持同时识别多个被factor()包裹的变量,比如公式为y ~ factor(gender) + factor(education) + age时,调用函数会返回c("gender", "education")。
内容的提问来源于stack exchange,提问作者glaucon
相关产品推荐
相关产品推荐

