基本上,我希望通过函数传递一个未触及的值。所以在下面的例子中(在Rstudio中):
example_function <- function(datain){
as.environment("package:utils")$View(datain)
}
我希望内部函数的行为好像我将原始对象传递给它,特别是因此,在View窗口中显示的名称将具有原始对象的名称(比如说X)而不是datain这是目前发生的事情。
答案 0 :(得分:1)
使用deparse(substitute(datain))
,您可以获得传递的参数的原始名称。
然后,为了完成你所要求的,你可以简单地做
example_function <- function(datain){
as.environment("package:utils")$View(datain, deparse(substitute(datain)))
}
现在,View窗口将根据需要正确标题。
然而请注意“我希望内部函数表现得好像我将它传递给原始对象”在R中不可能.R不支持pass-by-reference。有一些解决方法,但如果您只需要命名视图,上面的修复应该没问题。
答案 1 :(得分:0)
您也可以使用get
。
example_function <- function(datain){
as.environment("package:utils")$View(get(datain),datain)
}
在这种情况下,您不能将变量传递给变量,而是将变量的名称作为字符串传递。
example_function("X")