Populating a list with lm objects

for-loop, list, r

Solution

There are two solutions (depending on exactly what you want to do).

Create a list, and add an `lm` object to each element:

li = list() 
for (i in 1:10) 
    li[[i]] = lm(y~x)

Have a list of lists:

li[["RunOne"]] = list()
for (i in 1:10) 
    li[["RunOne"]][[i]] = lm(y~x)

Typically, single brackets `[ ]` are used for vectors and data frames, double brackets are used for lists.

Problem

I am trying to populate a named list with the results of an OLS in R. I tried ``` li = list() for (i in 1:10) li[["RunOne"]][i] = lm(y~x) ``` Here `RunOne` is a random name that designates the fitting run one, `y` and `x` are some predefined vectors. This breaks and gives me the error ``` Warning message: In l[["RunOne"]][1] = lm(y ~ x) : number of items to replace is not a multiple of replacement length ``` Though I understand the error, but I don't know how to fix it.

Original source