在data.frame中选择要在模型中实现的列
是否有一种方法可以使用data.frame的指定列运行模型(为简单起见,线性模型) 例如,我希望能够做到以下几点:在data.frame中选择要在模型中实现的列,r,statistics,dataframe,linear-regression,R,Statistics,Dataframe,Linear Regression,是否有一种方法可以使用data.frame的指定列运行模型(为简单起见,线性模型) 例如,我希望能够做到以下几点: set.seed(1) ET = runif(10, 1,20) x1 = runif(10, 1,20) x2 = runif(10, 1,30) x3 = runif(10, 1,40) Xdf = data.frame(ET = ET, X1 = x1, X2 =x2, X3 = x3) lm(ET~Xdf[,c(2,3)], data = Xdf) 其中,线性模型将等
set.seed(1)
ET = runif(10, 1,20)
x1 = runif(10, 1,20)
x2 = runif(10, 1,30)
x3 = runif(10, 1,40)
Xdf = data.frame(ET = ET, X1 = x1, X2 =x2, X3 = x3)
lm(ET~Xdf[,c(2,3)], data = Xdf)
其中,线性模型将等于lm(ET~X1+X2,data=Xdf)
我尝试过使用矩阵-但在这种情况下它不起作用,因为我最终将根据data=data.frame调用指定的data.frame中存储的值添加空间相关性,并具有某些名称.frame。此外,我需要能够选择数据中的某些列,因为这将使用不同的预测值在多个模型中循环
任何帮助都将不胜感激。谢谢 这里有一个(相当难看的)方法让它工作
在调用lm
之前,我使用as.formula
和paste
函数生成公式
我相信有更好的方法可以做到这一点,但这就是我想到的
# ET ~ X1 + X2
f1 <- as.formula(paste("ET~", paste(names(Xdf)[c(2,3)],
collapse="+")))
lm(f1, data=Xdf)
以下是一个单线解决方案:
lm(ET~., data = Xdf[c(2,3)])
如果要包括除一个变量以外的所有变量,例如X3:
lm(ET~., data = Xdf[-c(4)])
完成任务-谢谢!我想知道
粘贴
在那里是否有效。
lm(ET~., data = Xdf[-c(4)])