如何提取colname,使其字面上等于在R中写入变量

如何提取colname,使其字面上等于在R中写入变量,r,regression,extract,R,Regression,Extract,我想使用第二个场景在一些变量上进行for循环。然而,由于第二种方法给了我这种特定类型的输出,我得到了脚本其余部分的错误消息 我如何编写第二个回归,这样它就可以像第一个一样给出输出 > head(colnames(training)) [1] "Y" "X1" "X2" "X3" "X4" > lm.reg <- lm(Y ~ X1, data = training) > prob = predict(lm.reg, newdata = test) > h

我想使用第二个场景在一些变量上进行for循环。然而,由于第二种方法给了我这种特定类型的输出,我得到了脚本其余部分的错误消息

我如何编写第二个回归,这样它就可以像第一个一样给出输出

> head(colnames(training))
[1] "Y"    "X1" "X2" "X3" "X4" 

> lm.reg <- lm(Y ~ X1, data = training)
> prob = predict(lm.reg, newdata = test) 
> head(prob)
  Person 1        Person 2       Person 3      Person 4 
  0.128           0.232          0.422         0.784    

> lm.reg <- lm(Y ~ training[, 2], data = training)
> prob = predict(lm.reg, newdata = test) 
> head(prob)
  1         2         3         4         
  0.128     0.232     0.422     0.784 

您可以使用
as.formula

> lm.reg <- lm(as.formula(paste0("Y ~ ", colnames(training)[2])), data = training)
> prob = predict(lm.reg, newdata = test) 
> head(prob)
>lm.reg prob=predict(lm.reg,newdata=test)
>头部(prob)

你是个英雄。你是如何获得这些技能的?你怎么知道,你必须使用
as.formula
,然后使用
paste0
?@Textime随着时间的推移,你将获得这些技能。这很容易。
> lm.reg <- lm(as.formula(paste0("Y ~ ", colnames(training)[2])), data = training)
> prob = predict(lm.reg, newdata = test) 
> head(prob)