我想在 R 上编写一个循环来对我的数据集基因(= 210011 个基因和总共 6 个样本;列是基因,行是样本)执行线性回归,以确定年龄和性别如何影响基因表达。我想将线性回归的拟合值输出保存在一个新的数据框中(基本上生成一个类似的数据框,其中列上有基因,行中有样本)。
所以我写的循环是:
genelist <- df %>% select(5:21011) #select only genes
for (i in 1:length(genelist)) {
formula <- as.formula(paste0(genelist[i], ' ~ age + sex'))
model <- lm(formula, data = df)
print(model$fitted.values)
}
但我无法保存新的数据框。我试图按照这个如何在 R 中循环/重复线性回归
test <- list(); model <- list()
for (i in 1:length(genelist)) {
formula[[i]] = paste0(genelist[i], ' ~ age + sex')
model[[i]] = lm(formula[[i]], data = df)
}
但它给了我“0列表”作为结果,所以我一定写错了。如何修改我的原始代码生成一个新的数据框的结果?
感谢您的帮助!