It's the double bracket issue. I replaced that, and all is well.
Thanks to Peter and Don. Sincerely, Erin On Thu, Mar 26, 2015 at 3:21 PM, MacQueen, Don <macque...@llnl.gov> wrote: > I don't think you are correctly keeping track of the structure of your > objects. > (and my email software may mess up the indentation, but I can't prevent it) > > > I have not tested, but try replacing > > out[i]$phi_0 <- x$phi_0 > out[i]$maxlike <- x$maxlike > out[i]$bigp <- x$bigp > > with > > out[[i]] <- list(phi_0=x$phi_0, > maxlike=x$maxlike, > bigp=x$bigp > ) > > (double bracket, as Peter suggested) > > Then also replace > aic[i] <- -2*out[i]$maxlike + (2*(i+1)) > with > aic[i] <- -2*out[[i]]$maxlike + (2*(i+1)) > > To begin understanding this, see this little sequence: > > foo <- vector('list',3) > > foo[[2]] <- list(a=1, b=2) > > foo[2]$a > NULL > > foo[[2]]$a > [1] 1 > > > > > Also, which() does not return a list object as you are using it, so there > is no reason to unlist() it. Might as well use > which.min(minaic) > while you're at it. > > So replace your last three lines with > out[which.min(minaic)] > as the last line of your function, before the closing } > > No need to use return() > > -Don > > > -- > Don MacQueen > > Lawrence Livermore National Laboratory > 7000 East Ave., L-627 > Livermore, CA 94550 > 925-423-1062 > > > > > > On 3/26/15, 11:22 AM, "Erin Hodgess" <erinm.hodg...@gmail.com> wrote: > > >Hello! > > > >I am having some trouble with some list output. > > > >Here is my code: > >geobunch <- function(y) { > > > > out <- vector("list",3) > > aic <- numeric(length=3) > > print(str(out)) > > for(i in 1:3) { > > > > x <- geomin(y,i) > > print(i) > > print(x) > > print(str(x)) > > out[i]$phi_0 <- x$phi_0 > > out[i]$maxlike <- x$maxlike > > out[i]$bigp <- x$bigp > > aic[i] <- -2*out[i]$maxlike + (2*(i+1)) > >} > > minaic <- which(aic==min(aic)) > > minout <- out[unlist(minaic)] > > return(minout) > >} > > > >And here is the output: > >> geobunch(ez2a) > >List of 3 > > $ : NULL > > $ : NULL > > $ : NULL > >NULL > >[1] 1 > >$phi_0 > >[1] 2.856428 > > > >$bigp > >[1] 0.1584016 > > > >$maxlike > >[1] -473.0203 > > > >List of 3 > > $ phi_0 : num 2.86 > > $ bigp : num 0.158 > > $ maxlike: num -473 > >NULL > >Error in aic[i] <- -2 * out[i]$maxlike + (2 * (i + 1)) : > > replacement has length zero > >In addition: Warning messages: > >1: In out[i]$phi_0 <- x$phi_0 : > > number of items to replace is not a multiple of replacement length > >2: In out[i]$maxlike <- x$maxlike : > > number of items to replace is not a multiple of replacement length > >3: In out[i]$bigp <- x$bigp : > > number of items to replace is not a multiple of replacement length > >> > > > >I know that the problem is in how I am setting up the "out" variable, but > >I'm not sure how to correct it. Also, the bigp variable can take on > >different lengths. > > > >This is on R version 3.1.3, on Ubuntu 14.04. > > > >Thank you so much for any help. > > > >Sincerely, > >Erin > > > > > > > >-- > >Erin Hodgess > >Associate Professor > >Department of Mathematical and Statistics > >University of Houston - Downtown > >mailto: erinm.hodg...@gmail.com > > > > [[alternative HTML version deleted]] > > > >______________________________________________ > >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. > > -- Erin Hodgess Associate Professor Department of Mathematical and Statistics University of Houston - Downtown mailto: erinm.hodg...@gmail.com [[alternative HTML version deleted]] ______________________________________________ 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.