Hello,

First time posting to this mail list.

I'd like to use R in the most efficient way. I'm accomplishing what I want,
but feel there is a more R'ish way to do it. Just learning R.

*My goal: get ranks of value across rows with row names and column names
intact.*

I'm guessing one of the [?]apply functions will do what I need, but I
couldn't sort out which one (after a lot of searching).

Here is a simplified example of what I am doing. Again, I get the correct
result, but I assume there is a better way to do it.

> x = data.frame(1:4,4)
> x
  X1.4 X4
1    1  4
2    2  4
3    3  4
4    4  4
> ranks = matrix(0,nrow(x),ncol(x))
> ranks
     [,1] [,2]
[1,]    0    0
[2,]    0    0
[3,]    0    0
[4,]    0    0
> for(i in 1:nrow(x)){
+ ranks[i,] = rank(x[i,])
+ }
> ranks[i,]
[1] 1.5 1.5
> ranks
     [,1] [,2]
[1,]  1.0  2.0
[2,]  1.0  2.0
[3,]  1.0  2.0
[4,]  1.5  1.5
> rownames(ranks) = rownames(x)
> ranks
  [,1] [,2]
1  1.0  2.0
2  1.0  2.0
3  1.0  2.0
4  1.5  1.5
> rownames(ranks) = rownames(x)
> ranks
  [,1] [,2]
1  1.0  2.0
2  1.0  2.0
3  1.0  2.0
4  1.5  1.5
> colnames(ranks) = colnames(x)
> ranks
  X1.4  X4
1  1.0 2.0
2  1.0 2.0
3  1.0 2.0
4  1.5 1.5

Thanks,
Ben

        [[alternative HTML version deleted]]

______________________________________________
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.

Reply via email to