Row/column counter in 'apply' functions
        Posted  
        
            by mortalitysequence
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by mortalitysequence
        
        
        
        Published on 2010-03-30T14:13:37Z
        Indexed on 
            2010/03/30
            15:03 UTC
        
        
        Read the original article
        Hit count: 255
        
What if one wants to apply a functon i.e. to each row of a matrix, but also wants to use as an argument for this function the number of that row. As an example, suppose you wanted to get the n-th root of the numbers in each row of a matrix, where n is the row number. Is there another way (using apply only) than column-binding the row numbers to the initial matrix, like this?
test <- data.frame(x=c(26,21,20),y=c(34,29,28))
t(apply(cbind(as.numeric(rownames(test)),test),1,function(x) x[2:3]^(1/x[1])))
P.S. Actually if test was really a matrix :  test <- matrix(c(26,21,20,34,29,28),nrow=3)  , rownames(test) doesn't help :(
Thank you.
© Stack Overflow or respective owner