On 26/02/2015 9:27 AM, Alaios via R-help wrote:
Dear all,in my code I am using the mix() function that returns results in a
list. The result looks like
List of 10
$ parameters :'data.frame': 2 obs. of 3 variables:
..$ pi : num [1:2] 0.77 0.23
..$ mu : num [1:2] -7034 162783
..$ sigma: num [1:2] 20235 95261
$ se :'data.frame': 2 obs. of 3 variables:
..$ pi.se : num [1:2] 0.0423 0.0423
..$ mu.se : num [1:2] 177 12422
..$ sigma.se: num [1:2] 1067 65551
$ distribution: chr "norm"
$ constraint :List of 8
..$ conpi : chr "NONE"
..$ conmu : chr "NONE"
..$ consigma: chr "NONE"
..$ fixpi : NULL
..$ fixmu : NULL
..$ fixsigma: NULL
..$ cov : NULL
..$ size : NULL
$ chisq : num 28
$ df : num 5
$ P : num 3.67e-05
$ vmat : num [1:5, 1:5] 1.79e-03 -3.69e-01 -1.17e+02 2.95e+01
-2.63e+03 ...
$ mixdata :Classes ‘mixdata’ and 'data.frame': 11 obs. of 2
variables:
..$ X : num [1:11] 1e+04 2e+04 3e+04 4e+04 5e+04 6e+04 7e+04 8e+04 9e+04
1e+05 ...
..$ count: int [1:11] 993 137 82 30 21 5 7 14 21 2 ...
$ usecondit : logi FALSE
- attr(*, "class")= chr "mix"
In my code I am trying around 10.000 fit (and each of these fits returns the
list above) and I want to keep those in a way that later on I would be able to
search inside all the lists.For example I would like to find inside those
10.000 lists which one has the smallest $chisq value. What would be a suitable
way to implement that in R? Luckily I am working in a computer with a lot of
ram so storing 10.000 lists temporary in memory before saving to disk would not
be a problem.
What would you suggest me?
If all of the lists have the same components, then it would be
convenient to convert them into a big matrix or dataframe, with one row
per fit. It would need to be a dataframe if you include character data
along with the numbers, but a matrix would be faster, if it's only
numbers that you need. You'd use code like this to produce the matrix:
results <- matrix(NA_real_, 10000, ncols = .... however many you keep ....)
for (i in 1:10000) {
fit <- .... code to get the fit object ....
results[i,] <- with(fit, c(parameters$pi, parameters$mu,
parameters$sigma, ...... fill in the rest ......)
}
Duncan Murdoch
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.