检查R

时间:2017-12-07 01:53:55

标签: r

我遇到了一个非常简单的问题。

假设我有一个函数foo。我希望它的行为有所不同,具体取决于是否分配了一个对象,即foo()将打印"Please assign an object to foo!"data<-foo()只会将一个数据帧分配给对象data。< / p>

是否有可以检查此功能的功能,以便我可以在foo中加入逻辑测试?不幸的是,match.call没有告诉输出是否被分配给对象。

1 个答案:

答案 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