On Fri, 2007-04-27 at 12:58 +0100, Simon Pickett wrote: > Hi all, > > I have been using princomp() recently, its very useful indeed, but I have > a question about how to specify the rows of data you want it to choose. > > I have a set of variables relating to bird characteristics and I have been > using princomp to produce PC scores from these. > > However since I have multiple duplicate entries per individual (each bird > had a varying number of chicks), I only want princomp to treat each > individual bird as the sample and not include all the duplicates. Then I > want to replicate the pc scores for all the duplicated rows for that > individual. > > Any idea how to do this?
## example data using the vegan package require(vegan) data(varespec) ## duplicate some rows vare2 <- varespec vare2 <- rbind(vare2, varespec[sample(nrow(varespec), 50, replace = TRUE), ]) ## build the model using prcomp - it is better - on the original data ## without duplicates mod <- prcomp(varespec, centre = TRUE, scale. = TRUE) ## predict for full matrix inc duplicated rows pred <- predict(mod, vare2) Takes 0.005 seconds on my machine. So get a subset of your data without the duplicates, then use the predict method for prcomp. See ?predict.prcomp. Is that what you wanted? G > > Up to now I have been using princomp to only select the entries which are > not duplicated which is easy, but the difficult bit is the programming to > duplicate the pc scores across the entries for each individual. > > (I developed something that worked but it takes about 5 minutes to run!) > > Thanks for all your help, > > very much appreciated, > > Simon. > > > > > Simon Pickett > PhD student > Centre For Ecology and Conservation > Tremough Campus > University of Exeter in Cornwall > TR109EZ > Tel 01326371852 > > ______________________________________________ > R-help@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 > and provide commented, minimal, self-contained, reproducible code. -- %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% Gavin Simpson [t] +44 (0)20 7679 0522 ECRC, UCL Geography, [f] +44 (0)20 7679 0565 Pearson Building, [e] gavin.simpsonATNOSPAMucl.ac.uk Gower Street, London [w] http://www.ucl.ac.uk/~ucfagls/ UK. WC1E 6BT. [w] http://www.freshwaters.org.uk %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% ______________________________________________ R-help@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 and provide commented, minimal, self-contained, reproducible code.