Создание вектора бета-значений с использованием цикла for - PullRequest
0 голосов
/ 28 ноября 2018

Я новичок в R и в настоящее время пытаюсь создать 3 вектора, состоящих из бета-значений модели множественной регрессии.У меня есть три предиктора A ge, Фитнес и сон и зависимая переменная RT .

Для каждого участника у меня есть таблица Excel с 10 измерениями в разные моменты времени.Для каждого участника от 1 до 20 я хотел бы сохранить беты множественной регрессии в соответствующих векторах Age_betas, Fitness_betas или Sleep_betas.

Если я попробую свою модель только для одного участника, например,

model<-lm(scale(RT)~scale(Age)+scale(Fitness)+scale(Sleep), data=subset(Subjects1_5, Subject==1)) 

, она отлично работает.Может кто-нибудь помочь мне, почему мой цикл не работает?

    Fun<-function()
  {  
  Age_betas<-c()
  Fitness_betas<-c()
  Sleep_betas<-c()

  for (counter in 1:5)

    {model<-lm(scale(RT)~scale(Age)+scale(Fitness)+scale(Sleep), data=subset(Subjects1_5, Dummy==1 & Subject==i))

    Age_betas <- c(Age_betas, model[["coefficients"]][["scale(Age)"]])

    Fitness_betas <- c(Fitness_betas, model[["coefficients"]][["scale(Fitness)"]])

    Sleep_betas <- c(Sleep_betas, model[["coefficients"]][["scale(Sleep)"]])} 
  }

Нет ошибки, но скрипт ничего не делает, кроме добавления функции fun.

Fun<-function () + {<br> + Age_betas <-c () + Fitness_betas <-c () + Sleep_betas <-c () + <br>+ для (счетчик в 1: 5) +
+ {модель <-lm (шкала (RT) ~ шкала (возраст) + шкала (фитнес) + шкала (сон), данные = подмножество (субъекты1_5, пустышка == 1 & субъект == i)) + <br>+ Age_betas <-c (Age_betas, модель [["coefficients"]] [["scale (Age)"]]) + <br>+ Fitness_betas <- c (Fitness_betas, модель [["coefficients"]] [["scale (Fitness)"]]) + <br>+ Sleep_betas <- c (Sleep_betas, модель [[" coefficients "]] [[" scale (Sleep) "]])} +} </p>

1 Ответ

0 голосов
/ 28 ноября 2018

Найден способ решения проблемы:

 age_betas<-c()
    fitness_betas<-c()
    sleep_betas<-c()

    for (i in 1:5){
      model<-lm(scale(RT)~scale(Age)+scale(Fitness)+scale(Sleep), data=subset(Subjects1_5, Dummy==1 & Subject==i))

      age_betas <- c(age_betas, model[["coefficients"]][["scale(Age)"]])
      fitness_betas <- c(fitness_betas, model[["coefficients"]][["scale(Fitness)"]])
      sleep_betas <- c(sleep_betas, model[["coefficients"]][["scale(Sleep)"]])
    }
...