3

我有以下函数,其中只有一个参数,df. df是数据框:

test_function <- function(df) {
    df_name <- df #get name of dataframe (does not work)
    df_name
  }

test_function(mtcars)

如何从此函数返回数据集的名称?因为test_function(mtcars)我需要将字符串分配mtcarsdf_name.

4

2 回答 2

8

您可以使用组合substitute+deparse

test_function <- function(df)
    deparse(substitute(df))

test_function(mtcars)
##[1] "mtcars"
于 2013-07-09T15:09:53.313 回答
2

另一种选择是使用??match.call

返回一个调用,其中所有指定的参数都由它们的全名指定。

test_function <- function(df){
  as.list(match.call())[-1]  
}

test_function(mtcars)
$df
mtcars
于 2013-07-09T16:23:53.167 回答