Hello,

First, you can try to split your data frame in this way:

list.year<-split(pca, unique(pca$year))

And then apply the principal component analysis over the list "list.year".

Regards,
Carlos Ortega
www.qualityexcellence.es

On Tue, Mar 22, 2011 at 12:35 PM, mathijsdevaan <mathijsdevaan@gmail.com>wrote:

> Hi,
>
> I am trying to calculate Principal Component Scores per id per year using
> the psych package. The following lines provide the scores per obeservation
>
> pca = data.frame(read.table(textConnection("    id  year  A  B  C  D
> 1001  1972       64     56      14      23
> 1003  1972       60     55      62    111
> 1005     1972    57     51      10      47
> 1007     1972    59     49      7       10
> 1009     1972    65     50      9       32
> 1011     1972    52     58      3       5
> 1013     1972    63     52      9       27
> 1001     1973    65     56      14      25
> 1003     1973    61     55      62      7
> 1005     1973    58     51      10      47
> 1007     1973    60     49      7       19
> 1009     1973    66     50      9       32
> 1011     1973    53     58      3       5
> 1013     1973    64     52      9       28
> 1001     1974    66     56      14      23
> 1003     1974    62     55      62      11
> 1005     1974    59     51      10      46
> 1007     1974    61     49      7       10
> 1009     1974    67     50      9       38
> 1011     1974    54     58      3       5
> 1013     1974    65     52      9       24
> 1001     1975    67     56      1       23
> 1003     1975    63     55      6       1
> 1005     1975    60     51      1       47
> 1007     1975    62     49      7       10
> 1009     1975    68     50      9       32
> 1011     1975    55     58      3       5
> 1013     1975  66       52      9       27"),head=TRUE))
>
> library(psych)
> pcascores<-principal(pca[,-2], nfactors=1, score=TRUE)
>
> However, the scores should be based on the observations per year rather
> than
> the full set of observations. The final output should be a data frame with
> 7
> rows (one for each id) and 4 columns (one for each year) filled with the
> Principal Component Scores per id per year. Any ideas on how to do this?
>
> Thanks!
>
> --
> View this message in context:
> http://r.789695.n4.nabble.com/Find-Principal-Component-Score-per-year-tp3396132p3396132.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.
>

	[[alternative HTML version deleted]]

