I was was if there is a way to rank-order rows of my `Data`

below such that rows that **simultaneously** have the largest values on each of `risk1`

, `risk2`

and `risk3`

(*NOT TOTAL Of the three*) are at the top?

For example, in my `Desired_output`

, you see that `id == 4`

**simultaneously** has the largest values on `risk1`

, `risk2`

and `risk3`

(`4,3,2`

).

For all other `id`

s, there is a `1`

or `0`

on at least one of the `risk1`

, `risk2`

and `risk3`

.

Note: Tie’s are fine. `4,3,2 == 2,3,4 == 3,2,4`

.

```
Data = data.frame(id=1:4,risk1 = c(1,3,5,4), risk2 = c(8,2,1,3), risk3 = c(0,1,4,2))
Desired_output = read.table(h=T,text="
id risk1 risk2 risk3
4 4 3 2
3 5 1 4
2 3 2 1
1 1 8 0
")
```

### >Solution :

Maybe this helps – loop over the rows, `sort`

the elements, `paste`

, convert to numeric, use that to `order`

the rows

```
Data[order(-apply(Data[-1], 1, \(x)
as.numeric(paste(sort(x), collapse = "")))),]
```

-output

```
id risk1 risk2 risk3
4 4 4 3 2
3 3 5 1 4
2 2 3 2 1
1 1 1 8 0
```