首页 > 解决方案 > R - 对长格式数据帧中的 id 标识的小标题运行回归

问题描述

我想循环一个长格式的数据帧,它的 元组由. 我将所有不同的 ID 存储在数据框“uniqueIDs”中。“Numberofrows”是包含上述时间序列元组的列表的长度。data_all_longstockIDunique()

理想情况下,tmp 变量应将一个特定 ID 的所有数据临时存储在长列表中,以计算一个特定 ID 的回归并将其存储到一个向量中。总体结果应该是一个向量,其中包含不同 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) 
}

这里有人有什么想法吗?

标签: rtime-seriesregressionlm

解决方案


对于我对这个问题的理解,以下可能会做到这一点。
诀窍是通过每个结果数据帧split的数据IDsapply匿名函数。该函数将拟合模型并提取系数。

sp <- split(data_all_long, data_all_long$ID)
beta <- sapply(sp, function(tmp){
  fit <- lm(mrf ~ stockreturn, data = tmp)
  coef(fit)
})

推荐阅读