R在函数中获取data.frame名称

时间:2016-03-13 19:40:29

标签: r function dataframe

我写了一个用data.frame进行分析的函数。 在函数start中,我打印信息函数中的变量。 所以我想打印使用的data.frame名称的信息。

但我无法打印data.frame名称。它不打印data.frame名称,而是打印其内容,但不打印名称。 是否可以打印在函数内部传递给函数的data.frame的名称。

tmpFuction <- function(DF){

print("#############")
print("tmpFuction starts")
print(paste("DF",DF,sep="="))
print("#############")
return(1)
}
df1 <- data_frame(id=seq(1:4),x=rep(0,4))
df2 <- data_frame(id=c(1,2),x=c(0,4))
tmpFuction(10)
tmpFuction("a")
tmpFuction(df1)
tmpFuction(df2)

输出。对于我想要打印的最后两个例子:

[1] "#############"
[1] "tmpFuction starts"
[1] "DF=df1"
[1] "#############"

[1] "#############"
[1] "tmpFuction starts"
[1] "DF=df2"
[1] "#############"
[1] 1
> 

但我明白了:

> tmpFuction(10)
[1] "#############"
[1] "tmpFuction starts"
[1] "DF=10"
[1] "#############"
[1] 1
> tmpFuction("a")
[1] "#############"
[1] "tmpFuction starts"
[1] "DF=a"
[1] "#############"
[1] 1
> tmpFuction(df1)
[1] "#############"
[1] "tmpFuction starts"
[1] "DF=1:4"           "DF=c(0, 0, 0, 0)"
[1] "#############"
[1] 1
> tmpFuction(df2)
[1] "#############"
[1] "tmpFuction starts"
[1] "DF=c(1, 2)" "DF=c(0, 4)"
[1] "#############"
[1] 1
> 

1 个答案:

答案 0 :(得分:0)

deparse(替代()) 返回变量的名称,您可以在函数中调用它:

DF <- data.frame(c(1,2)); print(paste("DF", deparse(substitute(DF)),sep="="))