r - 具有动态因子的动态公式 - R
问题描述
我举这个例子(具有动态变量数的公式),并请您扩展问题
factors <- c("factor1", "factor2")
as.formula(paste("y~", paste(factors, collapse="+")))
# y ~ factor1 + factor2
我的问题很相似,但有很多不同的规格:
specification_vec <- c(0,1,2,3)
for (sp_vec in specification_vec){
specification_sel <- sp_vec
core_spec <- c("factor1core", "factor2core", "factor3core", "factor4core" ) # ->0
base1_spec <- c(core_spec, "factor5","factor6","factor7") #->1
base2_spec <- c(core_spec, "factor8","factor9","factor10") #->2
base3_spec <- c(base2_spec, "factor15") #->3
#tried solution Not Working
if (specification_sel == 0){
Eqfor <- as.formula(paste("y~", paste(core_spec, collapse = "+")))
} else if (specification_sel == sp_vec) {
Eqfor <- as.formula(paste("y~", paste(paste0("base",sp_vec,"_vars"), collapse="+")))
}
#lot of other stuff
} #this closes the loop
任何想法?
编辑:感谢分贝评论。这应该有效。
specification_vec <- c(0,1,2,3)
for (sp_vec in specification_vec){
specification_sel <- sp_vec
core_spec <- c("factor1core", "factor2core", "factor3core", "factor4core" ) # ->0
base1_spec <- c(core_spec, "factor5","factor6","factor7") #->1
base2_spec <- c(core_spec, "factor8","factor9","factor10") #->2
base3_spec <- c(base2_spec, "factor15") #->3
#Working
if (specification_sel == 0){
Eqfor <- as.formula(paste("y~", paste(core_spec, collapse = "+")))
} else if (specification_sel == sp_vec) {
Eqfor <- reformulate(eval(parse(text = paste0("base",sp_vec,"_spec"))), "y")
}
#lot of other stuff
print(Eqfor)
} #this closes the loop
解决方案
推荐阅读
- python - 我对抓取很陌生,请多多包涵,这是我的第一个项目。我正在尝试使用 selenium 抓取网站
- authorize.net - Authorize.net 错误 -- Apple Pay On The Web tx 处理支付数据时出错。解密数据中缺少必填字段
- session - Zend 框架 1.12.20 Zend_Session::start(); MS Edge 和 Google Chrome 的问题
- mysql - 返回 softDeleted 关系行
- or-tools - OR-Tool - 什么是分配模型的objectiveValue
- javascript - 在 html 中将 JSON 日期格式化为 dsilay
- git - 如何将更改从另一个分支拉到我的分支中?
- string - 复制活动 Azure 数据工厂中的正则表达式附加列
- python - 使用while循环编写一个程序,它打印从0到500(包括0和500)的每五个数字的总和
- elasticsearch - 使用不同的设置两次突出显示相同的字段