我无法在线性回归中循环这两个变量,并且想知道是否有人可以提供帮助。
我有多个遵循这种一般模式的数据集
Probe Test1 Test2 Test-n Control1 Control2 Control-n
Gene1 21 6 97 34 47 34
Gene2 49 32 49 23 12 90
Gene3 23 9 78 58 48 6
Gene4 19 65 2 42 56 24
Gene5 34 39 28 28 8 94
Gene6 79 26 94 47 31 76
Gene7 33 33 22 78 64 51
Gene8 1 61 26 63 85 83
Gene9 54 84 34 23 32 1
Gene-n 89 65 13 2 84 65
我试图以成对方式运行一系列线性回归,以便计算所有可能的组合,即Test1-Test2,Test1-Test-n等
到目前为止,我只能使用以下代码循环方程式的第二部分。
df <- read.csv("test.csv")
names(df)
varlist <- names(df)[3:7]
models <- lapply(varlist, function(x) {
lm(substitute(Test1 ~ i, list(i = as.name(x))), data = df)
})
models[[1]]
lapply(models, summary)
但是除了用下一个变量手动替换它之外,我还没有找到关于如何循环Test1
的任何信息,考虑到其中一些变量超过1000个,这是不切实际的。
我能找到的最接近的方法是here,但它仍然不是我需要的。我错过了一些明显的东西吗?
提前致谢。
答案 0 :(得分:1)
尝试以下方法。它比使用substitute
更简单。
varlist <- names(df)[-1]
models <- apply(combn(varlist, 2), 2, function(v)
lm(as.formula(paste(v[1], v[2], sep = "~")), data = df)
)
models[[1]]
lapply(models, summary)