【发布时间】:2019-07-24 07:48:06
【问题描述】:
在两个不同的函数中,完全相同的exists()调用行为方式不同。一个有效,另一个无效。有效的只需要一个参数。另一个需要三个。
直到昨天,这两个功能都成功了。就在结束会议之前,我安装了一些包。而今天,当我再次使用这些函数运行代码时,其中一个正在工作,而另一个却没有。所以,我分离了大部分正在运行的包,以免责怪其中一个。但问题仍然存在。
工作一:
fun1<-function(arg1,...) { if(!exists(as.character(substitute(arg1)))) return ("Some sttuf") }
不工作的一个:
fun2<-function(arg1, arg2, arg3, ...) { if(!exists(as.character(substitute(arg1))) ) return ("Some sttuf") }
fun2 中存在多个参数的事实是否与这种不一致的行为有关?无法使用 args 构建列表或向量,因为不存在的对象会在构建列表之前生成错误。
任何想法为什么会发生这种情况?更重要的是:关于如何解决问题的任何想法?
【问题讨论】:
-
也许使用
missing而不是exists?否则,您能否添加一个可以测试的功能的工作示例?