Search code examples
rellipsis

Extract names of dataframes passed with dots


One can use deparse(substitute()) combination to extract the parameter name inside the function like this function

names_from_dots <- function(...) {
    deparse(substitute(...))
 }

data(iris)
data(swiss)

names_from_dots(iris)
#[1] "iris"
names_from_dots(swiss)
#[1] "swiss"

extracts the name of a data.frame passed in ... (dots) parameter.

But how can one extract every name of passed multiple data.frames

names_from_dots(swiss, iris)
[1] "swiss"
names_from_dots(iris, swiss)
[1] "iris"

When this only returns the name of the first object.


Solution

  • You can try the following:

    names_from_dots <- function(...) sapply(substitute(list(...))[-1], deparse)
    
    names_from_dots(swiss, iris)
    # [1] "swiss" "iris"