Row/column counter in 'apply' functions
apply, r
Solution
What I usually do is to run `sapply` on the row numbers `1:nrow(test)` instead of `test`, and use `test[i,]` inside the function:
t(sapply(1:nrow(test), function(i) test[i,]^(1/i)))
I am not sure this is really efficient, though.
Problem
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.