landau landau - 23 days ago 6
R Question

Get the argument names of an R function

For an arbitrary function

f <- function(x, y = 3){
z <- x + y
z^2
}


I want to be able take the argument names of
f


> argument_names(f)
[1] "x" "y"


Is this possible?

Answer

formalArgs and formals are two functions that would be useful in this case. If you just want the parameter names then formalArgs will be more useful as it just gives the names and ignores any defaults. formals gives a list as the output and provides the parameter name as the name of the element in the list and the default as the value of the element.

f <- function(x, y = 3){
  z <- x + y
  z^2
}

> formalArgs(f)
[1] "x" "y"
> formals(f)
$x


$y
[1] 3

My first inclination was to just suggest formals and if you just wanted the names of the parameters you could use names like names(formals(f)). The formalArgs function just is a wrapper that does that for you so either way works.