【发布时间】:2017-10-13 12:48:12
【问题描述】:
warn <- NULL
withwarn <- function(fun) { tryCatch(fun, warning=function(w) {
warn <<- append(warn, paste(time, conditionMessage(w))) } )}
withwarn(reqHistoricalData(tws,x,time,'1 min','5 D','0','HISTORICAL_VOLATILITY'))
我将一个函数传递给 tryCatch 并希望获得参数 time 的值
我用 sys.call 等尝试了几种建议的方法,但似乎我的问题有所不同:对于函数(w),time 没有传递,并且在函数(fun)中时间只是函数字符串的一部分(仅评估稍后在 tryCatch 中)
编辑(解决方法):
我刚刚为time 添加了另一个参数withwarn <- function(fun,y)。
【问题讨论】:
-
关于术语的一句话:“函数”≠“函数调用”。您将 函数调用 传递给
withWarn,而不是函数。因此,更好的参数名称是expr(比较local和evalq的参数名称)。 -
谢谢!这些正是我仍然需要学习的术语/命令(eval、expr、quote、call、...) :-)
标签: r function try-catch parameter-passing