Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在data.frame中选择要在模型中实现的列_R_Statistics_Dataframe_Linear Regression - Fatal编程技术网

在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) 其中,线性模型将等

是否有一种方法可以使用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)
其中,线性模型将等于
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)])