From: Ignacio Colonna <iacolonn_at_uiuc.edu>

Date: Tue 17 May 2005 - 03:28:33 EST

for (i in seq(0,300,by=50)){

sim.data.i<-subset(sim.data,sim.data$day>i&sim.data$day<(i+50))

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

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 Received on Tue May 17 03:38:37 2005

Date: Tue 17 May 2005 - 03:28:33 EST

Is this along the lines of what you are trying to do?

sim.data<-data.frame(matrix(rnorm(350*10),350,10)) day<-seq(1:350)

sim.data<-data.frame(day,sim.data) pc1.load.all<-NULL pc2.load.all<-NULL

for (i in seq(0,300,by=50)){

sim.data.i<-subset(sim.data,sim.data$day>i&sim.data$day<(i+50))

pc1.load.i<-princomp(sim.data.i[,2:11])$loadings[,1] pc2.load.i<-princomp(sim.data.i[,2:11])$loadings[,2] pc1.load.all<-rbind(pc1.load.all,pc1.load.i) pc2.load.all<-rbind(pc1.load.all,pc1.load.i)}

period<-seq(1:7)

pc1.load.all<-cbind(period,pc1.load.all)
pc2.load.all<-cbind(period,pc1.load.all)

# and plot loadings for each each variable vs. the period...

Ignacio

Sorry, I don't think I made myself clear enough with my initial query!

I am wishing to investigate the temporal evolution of the pca: if we assume that every 50 rows of my data frame is representitive of, for instance, 1 day of data, I am hoping to automate a process whereby a pca is performed on every 50 rows of data and the loading for PC1 and PC2 for each variable (i.e. each column) is represented as a point on a plot - so a years' data will be represented as two lines (representing PC1 and PC2) on a time series plot for each variable.

Laura Quinn

Institute of Atmospheric Science

School of Earth and Environment

University of Leeds

Leeds

LS2 9JT

tel: +44 113 343 1596

fax: +44 113 343 6716

mail: laura@env.leeds.ac.uk

On Mon, 16 May 2005, Gavin Simpson wrote:

> Laura Quinn wrote:

*> > Please could someone point me in the right direction as I appear to be
**> > having a total mental block with fairly basic PCA problem!
**> >
**> > I have a large dataframe where rows represent independent
**> > observations and columns are variables. I am wanting to perform PCA
**> > sequentially on blocks of nrows at a time and produce a graphical output
**> > of the loadings for the first 2 EOFs for each variable.
**> >
**> > I'm sure I've performed a very similar routine in the past, but the
*

method

> > is currently escaping me.

*> >
**> > Any help gratefully received!
**>
**> Hi Laura,
**>
**> data(iris)
**> iris.dat <- iris[,1:4]
**> pca.1 <- prcomp(iris.dat[1:50, ], scale = TRUE)
**> pca.2 <- prcomp(iris.dat[51:100, ], scale = TRUE)
**> pca.3 <- prcomp(iris.dat[100:150, ], scale = TRUE)
**>
**> biplot(pca.1)
**> etc...
**>
**> There is a better way of subsetting this data set as the 5th col of iris
**> is a factor and we could use the subset argument to prcomp to do the
**> subsetting without having to know that there are 50 rows per species.
**> Take a look at that argument if you have a variable that defines the
**> blocks for you.
**>
**> Is this what you were after?
**>
**> All the best,
**>
**> Gav
**> --
**> %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
**> Gavin Simpson [T] +44 (0)20 7679 5522
**> ENSIS Research Fellow [F] +44 (0)20 7679 7565
**> ENSIS Ltd. & ECRC [E] gavin.simpsonATNOSPAMucl.ac.uk
**> UCL Department of Geography [W] http://www.ucl.ac.uk/~ucfagls/cv/
**> 26 Bedford Way [W] http://www.ucl.ac.uk/~ucfagls/
**> London. WC1H 0AP.
**> %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
**>
*

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

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 Received on Tue May 17 03:38:37 2005

*
This archive was generated by hypermail 2.1.8
: Fri 03 Mar 2006 - 03:31:46 EST
*