如何使用 $? 将 R 数据框中的列粘贴到公式的循环中?

How do I paste a column from a R dataframe in a loop for a formula using the $?

我需要帮助使用 $ 符号将数据框列粘贴为 R 中的公式。

df1 <- data.frame(id1 = c(1, 2, 3, 4, 5),
              id2 = c(1, 2, 3, 4, 5),
              var1 = c(3,6,6,9,5),
              var2 = c(1, 1, 0, 0, 1))
rownames(df1)<-c("first","second","third","fourth","fifth")

trait=c("id1","id2")
list=as.character("var1","var2")

for(i in trait){
  fit <- lm(df1[,i]~df1$list[2])
}

我想粘贴 lm (df1$list[2]) 的第二部分。在 $ 之后,我希望它粘贴字符向量列表的相应元素。

lm 一次可以 运行 多个左侧:

lm(cbind(id1, id2) ~ var1 + var2, f1)

给予:

Call:
lm(formula = cbind(id1, id2) ~ var1 + var2, data = f1)

Coefficients:
             id1      id2    
(Intercept)  0.09091  0.09091
var1         0.45455  0.45455
var2         0.45455  0.45455

最适合我的答案是上面 MrFlick 的答案:

for(i in seq_along(trait)) {
fit <- lm(reformulate(list[i], trait[i]), df1); print(fit)}