我试图在 R 的线性模型中将列(或特定向量元素)的名称设置为我的因变量(DV)。
当我通过键入“ITEM26”手动执行此操作时,没有错误。DV (y) 是 ITEM26,预测变量是数据框中的所有其他变量。
> lm(ITEM26 ~ ., data = M.compsexitems)
我现在想使用 colnames 函数和数字索引在线性模型中设置 DV,当我引用第一个元素时,它会提供“ITEM26”的输出。(我的最终目标是设置一个 for 循环,以便我可以快速将所有列名设置为单独线性模型的 DV。)
> colnames(M.compsexitems)[1]
[1] "ITEM26"
但是,当我尝试使用 colnames 函数和数字索引设置线性模型时,出现错误。
> lm(colnames(M.compsexitems)[1] ~ ., data = M.compsexitems)
Error in model.frame.default(formula = colnames(M.compsexitems)[1] ~ ., :
variable lengths differ (found for 'ITEM26')
如果我手动创建项目名称(sexitems)的向量,并通过索引引用向量中的特定元素,我会得到相同的错误。
> sexitems
[1] "ITEM26" "ITEM27"
> summary(lm(sexitems[1] ~ ., data = M.compsexitems))$r.squared
Error in model.frame.default(formula = sexitems[1] ~ ., data = M.compsexitems, :
variable lengths differ (found for 'ITEM26')
有谁知道为什么会存在这个错误,或者如何克服这个错误?我感觉 lm 函数没有将索引向量元素视为与数据框中的变量相同,但我不知道为什么。
上述问题成立的示例虚拟数据帧:
> M.compsexitems
ITEM26 ITEM27
1 2 4
2 3 5
预先感谢您的协助。