Как l oop регрессии по списку фреймов данных? - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть список из 192 фреймов данных одинакового размера с одинаковыми переменными, единственное отличие состоит в том, что зависимая переменная изменяется (значения, а не имя) во всех фреймах данных, остальное остается неизменным. Список выглядит следующим образом:

data = (df1, df2, df3, ..., df192)

, и каждый df имеет размер 17 x 7

. Цель состоит в том, чтобы запустить регрессию для каждого фрейма данных в списке, поэтому в конце у меня будет 192 лм объектов. Это мой первый l oop, поэтому я боролся с этим.

моя попытка выглядит следующим образом:

reg_list = list() # I create a list in which I will store my 192 lm objects
for (i in data) {
reg_list[[i]] = lm(x1 ~ x2 +x3)
}

Я знаю, что отсутствует аргумент данных, но поскольку они 192 dfs Я не знаю, как указать, что R.

Я ценю любые предложения по решению этой проблемы.

1 Ответ

2 голосов
/ 13 апреля 2020

Для меня работает следующее:

data = list(data.frame(x=c(1,4,6),y=c(1,2,5)),data.frame(x=c(1,4,6),y=c(0,8,7)),data.frame(x=c(4,4,2),y=c(1,2,5)))
lm(y~x,data=data[[1]]) #example on number 1: specify source of data 

for(i in 1:length(data)){
    reg_list[[i]]=lm(y~x,data=data[[i]]) #loop through from 1-legnth(data)
} 

Или вы можете сделать что-то вроде:

for(i in 1:length(data)){
    reg_list[[i]]=summary(lm(y~x,data=data[[i]])) 
} 
...