lundi 5 novembre 2018

For each row, sort column names by highest value

I have a dataframe that looks like this.

df <- data.frame(name = c("bob", "john", "peter", "chris"),
    a = c(0, 0, 0, 0), b = c(2, 2, 1, 0), c = c(4, 0, 0, 1), d = c(0, 2, 1, 0), e = c(1, 0, 5, 0))
df

   name a b c d e
1   bob 0 2 4 0 1
2  john 0 2 0 2 0
3 peter 0 1 0 1 5
4 chris 0 0 1 0 0

For each row I need to find the columnames ordered by value like in the below examples:

   name output
1   bob  c,b,e
2  john    b,d
3 peter  e,b,d
4 chris      c

I can't figure out how to do this.

Aucun commentaire:

Enregistrer un commentaire