[R] saving estimates from a for loop for later use
Gabor Grothendieck
ggrothendieck at gmail.com
Sat Apr 8 04:51:52 CEST 2006
Another possibility is to create a data.frame. I've just put
one statistic, sum, in it but you could put in as many as
you like:
> g <- expand.grid(i = 1:2, j = 1:2, k = 1:3)
> f <- function(x) with(x, c(i = i, j = j, k = k, sum = i+j+k))
> do.call("rbind", lapply(split(g, rownames(g)), f))
i j k sum
1 1 1 1 3
2 2 1 1 4
3 1 2 1 4
4 2 2 1 5
5 1 1 2 4
6 2 1 2 5
7 1 2 2 5
8 2 2 2 6
9 1 1 3 5
10 2 1 3 6
11 1 2 3 6
12 2 2 3 7
On 4/7/06, Brian Quinif <bquinif at gmail.com> wrote:
> Thanks for the suggestion, but I do not know how to get it to work for
> the actual matrix I want to create. This is not reproducible, but
> here is the form of the matrix I want:
>
> #above I compute satt.yr.hrs and satt.full.load using Match()
>
> Estimates <- matrix(c(satt.yr.hrs$est,
> paste('(',satt.yr.hrs$se,')',sep=''), satt.full.load$est,
> paste('(',satt.full.load$se,')',sep='')), nrow=4)
>
> In my real program, I have 3 loops with i in 1:3, j in 1:3 and m in
> 1:6. I want to be able to combine the various versions of Estimates
> in many combinations to make tables.
>
> BQ
>
> 2006/4/7, Liaw, Andy <andy_liaw at merck.com>:
> > If the matrices you're storing inside the loop are all the same dimension
> > (as in your example), it's probably better to store them in an array; e.g.:
> >
> > i1 <- 2:3
> > i2 <- 11:12
> > x <- array(0, c(4, 1, length(i1), length(i2)))
> >
> > for (i in seq(along=i1)) {
> > for (j in seq(along=i2)) {
> > x[, , i, j] <- matrix(c(i1[i], i2[j], i1[i] + i2[j], i1[i]*i2[j]),
> > nrow=4)
> > }
> > }
> > dimnames(x) <- list(NULL, NULL, i1, i2)
> > x[, , "2", "11", drop=FALSE]
> > x[, , "3", "11", drop=FALSE]
> >
> > (Notice you need the drop=FALSE to keep it a matrix, because it only has one
> > column.)
> >
> > Andy
> >
> > From: Brian Quinif
> > >
> > > I kind of understand this recommendation, but I can't figure
> > > out how to work with x once I have created it. Here is some
> > > fully reproducible code. It creates a 4x1 matrices within
> > > the loops. Once done with the looping, I want to cbind these
> > > matrices together. I know it's a simple question, but I
> > > can't figure it out.
> > >
> > > x <- list()
> > > for (i in 2:3)
> > > for (j in 11:12) {
> > > estimates <- matrix(c(i,j,i+j,i*j),nrow=4)
> > > x[[as.character(i)]][[as.character(j)]] <- estimates }
> > >
> > >
> > > So, once I've done this, how can I reference, say, the
> > > "estimates" matrix created when i=2 and j=12?
> > >
> > > Thanks,
> > >
> > > BQ
> > >
> > > 2006/4/7, jim holtman <jholtman at gmail.com>:
> > > >
> > > > use a 'list';
> > > >
> > > > x <- list()
> > > > for (i in 1:3)
> > > > for (j in 0:2) {
> > > > .....your calculations.....
> > > > x[[as.character(i)]][[as.character(j)]] <- yourResults
> > > > }
> > > >
> > > >
> > > >
> > > > On 4/7/06, Brian Quinif <bquinif at gmail.com> wrote:
> > > > >
> > > > Thanks to the help of many on this list, I am now an R user
> > > and have
> > > > been able to write some functioning code to do matching estimation.
> > > >
> > > > I have two for loops (i in 1:3, and j in 0:2). Within the loops, I
> > > > had been creating matrices of relevant estimation
> > > coefficents in order
> > > > to make lots of LaTeX tables.
> > > >
> > > > Well, now I want to be able to combine the results of many
> > > different
> > > > estimations from within the loops into one larger table outside the
> > > > loops.
> > > >
> > > > How can I save the estimation results from each iteration of the
> > > > estimation within a loop for later use outside the loop?
> > > >
> > > > Thanks,
> > > >
> > > > BQ
> > > >
> > > > ______________________________________________
> > > > R-help at stat.math.ethz.ch mailing list
> > > > https://stat.ethz.ch/mailman/listinfo/r-help
> > > > PLEASE do read the posting guide!
> > > > http://www.R-project.org/posting-guide.html
> > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Jim Holtman
> > > > Cincinnati, OH
> > > > +1 513 646 9390 (Cell)
> > > > +1 513 247 0281 (Home)
> > > >
> > > > What the problem you are trying to solve?
> > >
> > > ______________________________________________
> > > R-help at stat.math.ethz.ch mailing list
> > > https://stat.ethz.ch/mailman/listinfo/r-help
> > > PLEASE do read the posting guide!
> > > http://www.R-project.org/posting-guide.html
> > >
> > >
> >
> >
> > ------------------------------------------------------------------------------
> > Notice: This e-mail message, together with any attachment...{{dropped}}
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>
More information about the R-help
mailing list