Я хочу запустить регрессию цикла для Fund1 до Fund10 на основе LIQ-фактора. Я хочу сделать эту регрессию:

lm(fund1S~ LIQ, data = Merge_Liq_Size)

Но за все средства одновременно.

Я приложил изображение набора данных, чтобы показать вам настройку. Набор данных содержит 479 наблюдений / строк. Может ли кто-нибудь помочь мне создать код? Извините, если этот вопрос сформулирован неправильно.

dataset

dataset

r
1
kjooh 11 Окт 2021 в 16:49

2 ответа

Лучший ответ

Возможно, это то, что вы ищете:

my_models <- lapply(paste0("fund", 1:10, "S ~ LIQ"), function(x) lm(as.formula(x), data = Merge_Liq_Size))

Вы можете получить доступ к каждой модели с my_models[[1]] до my_models[[10]].

1
Martin Gal 11 Окт 2021 в 14:01

Если это lm, мы можем сделать это и без lapply, т.е. создать matrix в качестве зависимой переменной и построить формулу

lm(as.matrix(Merge_Liq_Size[paste0("fund", 1:10, "S")]) ~ LIQ, data = Merge_Liq_Size)

Используя небольшой воспроизводимый пример

> data(mtcars)
> lm(as.matrix(mtcars[1:3]) ~ vs, data = mtcars)

Call:
lm(formula = as.matrix(mtcars[1:3]) ~ vs, data = mtcars)

Coefficients:
             mpg       cyl       disp    
(Intercept)    16.617     7.444   307.150
vs              7.940    -2.873  -174.693
0
akrun 11 Окт 2021 в 16:35