R - Запуск регрессии для столбцов, идентифицированных по идентификатору из кадра данных в длинном формате - PullRequest
0 голосов
/ 08 марта 2020

Я хотел бы l oop на data_all_long в длинном формате, который имеет кортежей, обозначенных stockID. С unique() я сохранил все разные идентификаторы во фрейме данных «uniqueID». «Numberofrows» - длина списка, содержащего кортежи временных рядов сверху.

В идеале переменная tmp должна хранить все данные для одного указанного c ID из длинного списка временно, чтобы вычислить регрессию для одного указанного c ID и сохранить ее в векторе. Общий результат должен быть вектором со всеми коэффициентами регрессии для разных идентификаторов.

for(i in uniqueIDs){
  for(j in 1:numberofrows){
      tmp <- rbind(tmp,filter(data_all_long, stockId == i))
  }
  beta[,i] <- lm(mrf ~ stockreturn, data = tmp) 
}

У кого-нибудь есть идеи?

1 Ответ

1 голос
/ 08 марта 2020

Для того, что я понимаю о проблеме, следующее может сделать это:
Хитрость заключается в том, чтобы split данные ID и sapply были анонимной функцией для каждого из результирующих фреймов данных. Эта функция будет соответствовать моделям и извлекать коэффициенты.

sp <- split(data_all_long, data_all_long$ID)
beta <- sapply(sp, function(tmp){
  fit <- lm(mrf ~ stockreturn, data = tmp)
  coef(fit)
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...