如何在函数中自动粘贴被调用变量的名称

时间:2018-10-25 07:55:48

标签: r

我有一个调用 xm 的函数,其中xm是学习的机器学习模型。函数中有没有办法我可以打印xm的名称,而不是模型的摘要,这就是在打印(xm)时会发生的情况

例如,我的函数生成要保存在函数中的图形

modsummary <- function(xm){

    mypath <- file.path("C:","Users","Documents",paste("rf_fit_hmeas_random", ".png", sep = ""))

    png(file = mypath)

    print(plot(xm))
    dev.off()
}

modsummary(rf_fit)

我要做的是这样设置,以便粘贴xm(在本例中为rf_fit),以便它自动检测调用的函数,并在每次调用不同模型时替换xm_hmeas_random。

谢谢

1 个答案:

答案 0 :(得分:0)

是的,您可以使用deparse(substitute(xm))来获取。

就是这样。

modsummary <- function(xm){

    mypath <- file.path("C:/","Users/","Documents/",paste0(deparse(substitute(xm)), "_hmeas_random.png"))

png(file = mypath)

print(plot(xm))
dev.off()
}

modsummary(rf_fit)

我在目录名称之间添加了斜杠(/),并切换为使用paste0(),从而无需指定分隔符。