【发布时间】:2012-12-28 03:44:28
【问题描述】:
我的问题很简单。
x=list(type="call")
FUN <- function(x=list(type=c("call","put")))
{
x$type=match.arg(x$type)
}
这会返回一个错误:
> FUN(x)
Error in match.arg(x$type) : 'arg' should be one of “”
有什么想法吗?
【问题讨论】:
-
我不认为这是可能的;来自
?match.arg的默认函数参数用于匹配输入,但这里您的默认值不是简单的字符向量。 -
在重新打开之前,这是一个丑陋的解决方法,
FUN = function(x=list(type=c("call","put"))){match.arg(x$type, formals(FUN)[['x']][['type']]) } ; FUN(x=list(type='call')) -
@这是一个真正的 R 问题吗
-
@baptiste 注意到“不起作用”通常是 NARQ 会有所帮助。如果你觉得你知道它为什么不起作用,它会帮助edit 并添加该信息。我已重新打开,因此您可以添加解决方法。