对 R 中数据框的每第 n 行进行多元回归

Conduct multivariate regression on every nth row of dataframe in R

我有一个包含 376 列和 2700 行的数据框,每个主题对应 270 行(因此,在这种情况下有 10 个主题)。每 270 行是一个受试者的数据(即 1:270 - 受试者 1;271:540 - 受试者 2)。

我有一个单独的数据框 (2700 x 8) 和我的自变量,同样每个主题 270 行。

我希望从我的 376 个 DV 中回归出 8 个 IV 并获得残差。这里对我来说棘手的部分是我想对每个主题单独进行回归(即每 270 行单独回归)。下面是一些模拟数据:

DV = matrix(rnorm(2700*376),ncol=376) #construct matrix for dependent variables

IV =  matrix(rnorm(2700*8),ncol=8) #matrix for independent variables

要从整个数据中获取残差,我会简单地做

resid = residuals(lm(DV~IV))

但是我该如何调整它才能使每个主题(每 270 行)进行回归?如果我的 IV 和 DV 数据帧合并起来会更容易吗?

我是 R 的新手,非常感谢任何帮助,谢谢。

使用 for 循环和基础 R 的建议:

result_list <- NULL
first <- 1
for (i in 1:10) {
  last <- i * 270
  this_subjects_results <- residuals(lm(DV[first:last,] ~ IV[first:last,]))
  result_list <- list(result_list, this_subjects_results)
  first <- last + 1
}