alwaysaskingquestions
alwaysaskingquestions

Reputation: 1657

r get variable name that has maximum

I've searched online for a while now but not really finding answers to this specific question. maybe im not using the right key words... but if there's already a thread on this question, please direct me to it!

so let's say the data looks like this:

a = 3 b = 5

now i want to find out which one is larger, so i do:

max(a,b)

this will only return me the "5", but i want it to return "b" i tried using which() but it keep saying "which is not logical" i also tried deparse() but i get a string of "5"

thanks for any help in advance!

Upvotes: 4

Views: 1496

Answers (3)

John_West
John_West

Reputation: 2399

A basic approach to get variable name is implemented as myfunc, everything else is concise:

myfunc <- function(v1) {
  deparse(substitute(v1))
}
a=3
b=5
ifelse(max(a,b),myfunc(a),myfunc(b))

Upvotes: 0

alwaysaskingquestions
alwaysaskingquestions

Reputation: 1657

thanks andrewelamb for a great start on the answer. i changed the code a bit to produce the right answer i was looking for:

`a = 3
 b = 5
 v_name = ["a","b"]
 v_name[which.max(c(a,b))]`

hope it helps anyone else who has this problem as well in the future

Upvotes: 2

andrewelamb
andrewelamb

Reputation: 19

a <- 5
b <- 4
vector <- c(a,b)
which.max(vector)
vector[which.max(vector)]

Upvotes: 0

Related Questions