我遇到了一个非常简单的问题。
假设我有一个函数foo
。我希望它的行为有所不同,具体取决于是否分配了一个对象,即foo()
将打印"Please assign an object to foo!"
而data<-foo()
只会将一个数据帧分配给对象data
。< / p>
是否有可以检查此功能的功能,以便我可以在foo
中加入逻辑测试?不幸的是,match.call
没有告诉输出是否被分配给对象。
答案 0 :(得分:1)
你所要求的并不是R的工作精神。
如果你必须这样做,那么解决方法就是使用表格而不是:
output <- foo(input)
将输出的名称作为参数传递给foo
。然后我们可以这样做:
foo <- function(name, input, envir = parent.frame()) {
stopifnot(is.character(name))
output <- input # can replace this with complex transformation
assign(name, output, envir)
}
# test it checking that abc was assigned to
foo("abc", 3)
abc
## [1] 3