R:使用预测变量的长向量计算线性模型导致解析错误

R: Calculating linear models with long vector of predictor variables resulting in parse error

我正在尝试使用一长串预测变量来计算几个线性模型。因此,我首先在一个长字符串中定义我的预测变量:

#### define predictors ####
all_predictors <- "age + gender + study + ACHIEVER + PLAYER + SOCIALIZER + DISRUPTOR + FREE_SPIRIT + PHILANTHROPIST + INF_POP + PLE_STIM + P19_SDI_thought + P19_SDI_action + P19_Stimulat + P19_Hedonism + P19_Achievement + P19_Power.resources + P19_Power.dominance + P19_Face + P19_Sec.personal + P19_Sec.societal + P19_Traditio + P19_conf_rules + P19_conf_interpersonal + P19_Humility + P19_bene_dependability + P19_bene_caring + P19_univ.concern + P19_univ.nature + P19_univ.tolerance + OFA_Expl + OFA_Geni + OFA_Genw + OFA_Deta + OFA_List + OFA_Comm + OFA_IdeB + OFA_IdeC + OFA_Find + OFA_Coll + OFA_Buil + OFA_Subm + OFA_MakA + OFA_MakF + OFA_ForI + OFA_Give + OFA_Rate + OFA_ForQ + OFA_GenT + OFA_Ment + OFA_Spi, comb"

然后我尝试将预测变量与我的因变量结合起来并调用 lm 模型:

#### OFM_Subm  ####
OLS_OFM_Subm <- lm(paste("OFM_Subm ~ ", all_predictors, sep = ""))

但是我总是得到以下错误:

Error in parse(text = x, keep.source = FALSE) : 
  <text>:1:708: unexpected ','
1: ture + P19_univ.tolerance + OFA_Expl + OFA_Geni + OFA_Genw + OFA_Deta + OFA_List + OFA_Comm + OFA_IdeB + OFA_IdeC + OFA_Find + OFA_Coll + OFA_Buil + OFA_Subm + OFA_MakA + OFA_MakF + OFA_ForI +

我做错了什么?我尝试修改 as.formulaformula 但到目前为止没有成功。

我和 paste("OFM_Subm ~ ", all_predictors, sep = "") 放在一起的公式看起来不错:

"OFM_Subm ~ age + gender + study + ACHIEVER + PLAYER + SOCIALIZER + DISRUPTOR + FREE_SPIRIT + PHILANTHROPIST + INF_POP + PLE_STIM + P19_SDI_thought + P19_SDI_action + P19_Stimulat + P19_Hedonism + P19_Achievement + P19_Power.resources + P19_Power.dominance + P19_Face + P19_Sec.personal + P19_Sec.societal + P19_Traditio + P19_conf_rules + P19_conf_interpersonal + P19_Humility + P19_bene_dependability + P19_bene_caring + P19_univ.concern + P19_univ.nature + P19_univ.tolerance + OFA_Expl + OFA_Geni + OFA_Genw + OFA_Deta + OFA_List + OFA_Comm + OFA_IdeB + OFA_IdeC + OFA_Find + OFA_Coll + OFA_Buil + OFA_Subm + OFA_MakA + OFA_MakF + OFA_ForI + OFA_Give + OFA_Rate + OFA_ForQ + OFA_GenT + OFA_Ment + OFA_Spi, comb"

为了澄清,我要进行的 lm 调用是:

lm(OFM_Subm ~ age + gender + study + ACHIEVER + PLAYER + SOCIALIZER + DISRUPTOR + FREE_SPIRIT + PHILANTHROPIST + INF_POP + PLE_STIM + P19_SDI_thought + P19_SDI_action + P19_Stimulat + P19_Hedonism + P19_Achievement + P19_Power.resources + P19_Power.dominance + P19_Face + P19_Sec.personal + P19_Sec.societal + P19_Traditio + P19_conf_rules + P19_conf_interpersonal + P19_Humility + P19_bene_dependability + P19_bene_caring + P19_univ.concern + P19_univ.nature + P19_univ.tolerance + OFA_Expl + OFA_Geni + OFA_Genw + OFA_Deta + OFA_List + OFA_Comm + OFA_IdeB + OFA_IdeC + OFA_Find + OFA_Coll + OFA_Buil + OFA_Subm + OFA_MakA + OFA_MakF + OFA_ForI + OFA_Give + OFA_Rate + OFA_ForQ + OFA_GenT + OFA_Ment + OFA_Spi, comb)

因为我必须 运行 许多具有这些相同预测变量的模型,所以我想缩短代码以提高可读性。

嗯,公式中似乎不允许使用逗号(感谢评论者!)。所以我通过将数据帧从预测变量中取出并调用来得到我想要的:

OLS_OFM_Subm <- lm(paste("OFM_Subm ~ ", all_predictors, sep = ""), comb)