几个回归的循环函数

时间:2017-04-15 06:46:19

标签: r

我想知道如何在循环函数(或plyr包中的任何函数)中分别计算x和每个y1,y2,y3之间的回归线,并将所有结果带入新数据。帧。 2.如何绘制x和每个y (y1,y2,y3)

的图
subject<-seq(1,21,1)
x<-seq(10,30,1)
y1<-seq(15,35,1)
y2<-seq(20,40,1)
y3<-seq(50,70,1)
a<-data.frame(subject,x,y1,y2,y3)

1 个答案:

答案 0 :(得分:0)

最终确定您想要具有哪些结果。现在我只是保存拦截和斜率。

results <- data.frame()
for (i in colnames(a)[! colnames(a) %in% c('subject','x')]) {
results <- rbind(results,coefficients(lm(x ~ get(i), a)))
}
colnames(results) <- c('intercept','slope')
results

注意:在R中截距不是你通常认为的截距。通常,截距是y,其中x = 0。在R中,它是x,其中y = 0。

对于绘图,首先需要计算出y的最大值和最小值,以便设置绘图区域。

min_y <- min(a$y1,a$y2,a$y3)
max_y <- max(a$y1,a$y2,a$y3)

plot(x, y1, ylim = c(min_y, max_y))
points(x, y2, yaxt = 'n', ylab = '')
points(x, y3, yaxt = 'n', ylab = '')

请参阅