我有一个名为TBT
的简单函数。此函数有一个名为x
的参数。用户可以提供R中存在的任何类型rdistribution_name()
(例如,rnorm()
,rf()
,rt()
,rbinom()
等)以用于参数x
,除了一个:“rcauchy()
”。
我想知道R如何识别用户提供rcauchy()
作为x
的输入,在这种情况下,R会发出警告消息?
这是我的R代码没有成功:
TBT = function(x) {
if( x == rcauchy(...) ) { warning("\n\tThis type of distribution is not supported.") }
}
TBT( x = rcauchy(1e4) )
Error in TBT(rcauchy(10000)) : '...' used in an incorrect context
答案 0 :(得分:1)
如果您正在预测它们,当他们调用您的函数时,请调用随机函数,您可以这样做
TBT <- function(x) {
xcall <- match.call()$x
if (class(xcall)=="call" && xcall[[1]]=="rcauchy") {
warning("\n\tThis type of distribution is not supported.")
}
}
TBT( x = rcauchy(1e4) )
但这不会发现像
这样的情况x <- rcauchy(1e4)
TBT( x )
R无法跟踪x
变量中的数据来自