我的代码不起作用。我试图通过lm函数简要地找到4组数据之间的关系。
我的数据如下
X1,Y1, X2, Y2,X3,Y3
1,2,3,4,5,6
6,5,4,3,2,1
2,3,4,5,6,7
7,6,5,4,3,2
最简单的方法就是
fit=lm(X1,Y1)
summary(fit)
我不想一次输入fit1,fit2,fit3,而是想一次完成所有操作。
我也尝试过get_regression_table(fit[n], print=TRUE)
,但仍然无法正常工作
fit[n]<-lm(Yn~Xn,data=mydata)
for (n in 1:3){
get_regression_table(fit[n], print=TRUE)
}
答案 0 :(得分:0)
您需要使用lm
动态调用do.call
函数。并将参数作为字符串传递。
data = data.frame(X1 = c(1,6,2,7),Y1 = c(2,5,3,5),X2 = c(3,4,4,5),Y2 = c(4,3,5,4),X3 = c(5,2,6,3),Y3 = c(6,1,7,2))
results = vector("list",3)
for(i in seq(1,3)){
formula = paste0("Y",i,"~","X",i)
results[[i]] = do.call("lm",list(formula = formula,data = quote(data)))
}
结果中的每个元素都包含第i
个适合项。
答案 1 :(得分:0)
您可以使用矩阵存储值,然后使用变量遍历所需的索引
mat <- t(matrix(c(1,2,3,4,5,6,6,5,4,3,2,1,2,3,4,5,6,7,7,6,5,4,3,2),6,4))
matfit <- list()
length(fit) <- 3
for(i in 1:3){
fit[[i]] <- lm(mat[,i*2-1] ~ mat[,i*2])
}