Hi again I believe you are fishing a wrong pond.
r-help-boun...@r-project.org napsal dne 01.03.2010 11:46:12: > > Hi Petr, > > Thank you for your post - I really appreciate you taking the time over my > problem. > > Apologies for not posting more data, it is just that the data set is rather > large, and I don't like posting the whole thing on the website for that > reason. > > I have managed to random sample the 98 individuals so that I effectively get > 98 data points from the data set, I do this with the script below, which I > appreciate may not be the best way to do it: > > for (S in 1:1){ > Sample.dat<-ALL.R[1,] > for (I in 1:98){ > tmp<-ALL.R[ALL.R$ID2==I,] > max<-dim(tmp)[1] > if (I==1) Sample.dat[1,]<-tmp[sample(1:max,1),] else { > Sample.dat<-rbind(Sample.dat,tmp[sample(1:max,1),]) I suggested to you basically this (based on sorted ID2), # how many unique ids len<-rle(ALL.R$ID2)$lengths # how many values are from beginning shift.len<-c(0,cumsum(len))[-(length(len)+1)] # get one value from each id - this you can put inside your cycle samp<-sapply(sapply(split(ALL.R$ID2, ALL.R$ID2), function(x) 1:length(x)), sample, 1) Sample.dat <- ALL.R[shift.len+sample,] You shall get your 98 random rows, one for each animal. If ID2 is not sorted you could use the other option ss<-sample(1:nrow(ALL.R)) sort data.frame according those randomised indices and select let say first one Sample.dat <- sapply(split(ALL.R[ss,], ALL.R[ss,1]), function(x) x[1,]) <snip> > > I then run the random sample of data through a model then using the MuMIn > package and the dredge command I get a list of all of the possible subsets > of the model in order of lowest to highest AIC values, the script below is > shown for that: > you can use those lines without problems > m1.R<-glm(cbind(Sample.dat$BEH_T, Sample.dat$BEH_F) ~ Sample.dat$SITE + > Sample.dat$YEAR + Sample.dat$PRECIP_MM_DAY + Sample.dat$PUP_AGE_EST + > Sample.dat$MO_AIR_TEMP, family="binomial") I do not know type of dredge output. So if it is number use mod[i] <- if it is vector use mod[,i] if it is list use mod[[i]] but you need to initialise mod before cycle If this is not relevant to your question please try to invent some simple dataset for testing and put it to your question. Regards Petr > mod<-dredge(m1.R) > > The problem occurs here, manually I can do this fine, but for a 100 or so > simulations you don't want to do it manually. So I want to take mod[1,] for > each simulation and store that to look at later, but any way in which I try > to do this results in the data being overwritten. > > I'm not sure if this is any clear, I am sorry, It is taking me a little > longer to get my head around looping scripts! > > Best wishes, > > Ross > > > > > > -- > View this message in context: http://n4.nabble.com/Loop-overwrite-and-data- > output-problems-tp1570593p1573407.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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. ______________________________________________ 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.