对 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
}
我有一个包含 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
}