Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
R循环命名不同的对象_R_Loops - Fatal编程技术网

R循环命名不同的对象

R循环命名不同的对象,r,loops,R,Loops,我试图创建一个循环,用于估算R中相同的回归20次。我试图创建一个循环,在这个循环中,每个回归都以不同的方式调用,但是我没有设法拥有不同的对象(我收到一条错误消息)。代码如下 for (i in 1:20){ fit_[i] <- lm(y ~ x1 + x2 + x3, data=mydata) } for(1:20中的i){ 使用双括号来创建列表: fit_ <- list() for (i in 1:20){ fit_[[i]] <- lm(y ~ x1 + x2

我试图创建一个循环,用于估算R中相同的回归20次。我试图创建一个循环,在这个循环中,每个回归都以不同的方式调用,但是我没有设法拥有不同的对象(我收到一条错误消息)。代码如下

for (i in 1:20){
fit_[i] <- lm(y ~ x1 + x2 + x3, data=mydata)
} 
for(1:20中的i){

使用双括号来创建列表:

fit_ <- list()
for (i in 1:20){
  fit_[[i]] <- lm(y ~ x1 + x2 + x3, data=mydata)
} 

fit_uu>为什么不能将其存储在数组中?为什么需要不同的对象?如果希望变量具有不同的名称,一种方法是
assign(粘贴(“fit_uuu”,i,sep=“”),lm(y~x1+x2+x3,data=mydata))
。但是,正如其他评论所建议的,使用vector/list是首选的错误消息是什么?如果您运行模型20次,每次都会得到相同的结果。您最好执行
rep(list(lm(y~x1+x2+x3,data=mydata)),20)
。您希望得到20个不同的结果吗?这是FAQ 7.21(在R FAQ:)。该常见问题解答最重要的部分是结尾,它说使用列表代替。但是如果你(原始海报)在每个步骤中将使用不同的模型,常见问题解答中也有一部分介绍了这一点。您的最终目标可能会更容易使用列表和函数,如
replicate
lapply
。它不适用于双括号,错误是fit_i中的错误注意,我有一行
fit_uu只是一个小调,如果你做了
fit_u@RomanTsegelskyi,你是对的。虽然这两行都有效,但使用
list()
是一个更好的做法。