我正在尝试创建一个类似下面的函数:
if(!isGeneric("setSoilType")){
setGeneric("setSoilType", function(soil) {standardGeneric("setSoilType")});
}
setMethod("setSoilType", signature(soil = "numeric"),
function(soil){
K <- 200 * soil
K
})
但是,无论何时我输入setSoilType()
,我都会收到以下错误消息并且必须进行调试:
(函数(classes,fdef,mtable)中的错误: 无法为签名'&#34;缺少&#34;'&#34;
找到函数'setSoilType1'的继承方法
我如何处理这个问题,以便当我输入setSoilType()
时,我不会收到错误信息但会得到类似&#34;缺少参数&#34;?
答案 0 :(得分:0)
试试这个:
if(!isGeneric("setSoilType")){
setGeneric("setSoilType", function(soil) {standardGeneric("setSoilType")});
}
setMethod("setSoilType", signature("soil"),
function(soil){
K <- 200 * soil
K
})
我基于this。
你需要重新写一点,以便更像我链接的例子。
答案 1 :(得分:0)
一种解决方案是定义一个打印错误的nullary重载:
setMethod('setSoilType',signature(),function() stop('argument missing.',call.=F));
setSoilType();
## Error: argument missing.