DATA
        I have data from two (or more) locations with ID: 'A' and 'B'
    for three (or more) YEARS: 1999 to 2001
    of two (or more) variables: VAR1, VAR2.

        > x
          ID YEAR VAR1 VAR2
        1  A 1999    9    2
        2  B 1999    8    9
        3  A 2000    2    3
        4  B 2000    3    4
        5  A 2001    9    5
        6  B 2001    7    2

DESIRED RESULT
        I want to calculate the rank of the values of each variable
    for each location (ID) in every year.
    I want to get the ranks in a dataframe 'x.ranked'
    having the same structure as the original dataframe 'x'
    (which should be ready for the use by lattice functions).
    
        > x.ranked
          ID YEAR VAR1 VAR2
        1  A 1999    2    1
        2  B 1999    1    2
        3  A 2000    1    1
        4  B 2000    2    2
        5  A 2001    2    2
        6  B 2001    1    1


EXAMPLE CODE
    x <- data.frame(
          ID    = rep( c('A', 'B' ), 3 )
        , YEAR  = rep( c( 1999, 2000, 2001 ), each=2 )
        , VAR1  = c( 9, 8,  2, 3,  9, 7 )
        , VAR2  = c( 2, 9,  3, 4,  5, 2 )
        )
    vars <- c( 'VAR1', 'VAR2' )

    fun <- function( x, group=NULL ){
        if( ! is.null(group) )      by( x, group, fun )
        else if( ! is.vector(x) )   sapply( x, fun )
        else                        rank( x )
    }

    x.ranked <- fun( x[,vars], x$YEAR )


OBTAINED RESULT
        I got the right values by using the function 'fun',
    but the result does not have the desired structure.
        Can anyone help me to get the desired structure?

        > x.ranked
        group: 1999
                 VAR1 VAR2
        [1,]    2    1
        [2,]    1    2
        --------------
        group: 2000
                 VAR1 VAR2
        [1,]    1    1
        [2,]    2    2
        --------------
        group: 2001
                 VAR1 VAR2
        [1,]    2    2
        [2,]    1    1


Wolfram

______________________________________________
[EMAIL PROTECTED] mailing list
http://www.stat.math.ethz.ch/mailman/listinfo/r-help

Reply via email to