Create an output vector to hold your slopes before starting the loop, then
use your index i to place each new slope in the appropriate position in your
vector.
y1<-rnorm(100, mean=0.01, sd=0.001)
y2<-rnorm(100, mean=0.1, sd=0.01)
x<-(c(10,400))
my.slopes = vector("numeric",100) # initialize a numeric vector, length
100, filled with zeros initially
for (i in 1:100) {
#create the linear model for each data set
model1<-lm(c(y1[i],y2[i])~x)
slope1<-model1$coefficients[2]
my.slopes[i] = slope1 # stick each new slope value into my.slopes[i]
}
You could skip the slope1 <- model1$coefficients[2] step and just put the
slope directly into my.slopes[i] as well.
On Fri, Sep 16, 2011 at 3:25 PM, wrote:
> Hello,
>
> I would like to write a loop to 1) run 100 linear regressions, and 2)
> compile the slopes of all regression into one vector. Sample input data
> are:
>
> y1<-rnorm(100, mean=0.01, sd=0.001)
> y2<-rnorm(100, mean=0.1, sd=0.01)
>
> x<-(c(10,400))
>
> #I have gotten this far with the loop
>
> for (i in 1:100) {
>
> #create the linear model for each data set
> model1<-lm(c(y1[i],y2[i])~x)
> slope1<-model1$coefficients[2]
> }
>
> How can I compile the slopes from all 100 regressions into one vector?
>
> Thanks,
> Jake
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
--
___________________________
Luke Miller
Postdoctoral Researcher
Marine Science Center
Northeastern University
Nahant, MA
(781) 581-7370 x318
[[alternative HTML version deleted]]