我正在尝试使用一长串预测变量来计算几个线性模型。因此,我首先在一个长字符串中定义我的预测变量:
#### 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.formula
和formula
进行修补,但到目前为止没有成功。
我与p aste("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)
由于我必须使用这些相同的预测变量运行许多模型,因此我希望缩短代码以提高可读性。
答案 0 :(得分:0)
嗯,似乎公式中没有逗号(感谢评论者!)。所以我通过从predictors变量中取出数据帧并调用:
得到了我想要的东西OLS_OFM_Subm <- lm(paste("OFM_Subm ~ ", all_predictors, sep = ""), comb)