如何处理缺少参数错误

时间:2015-03-24 17:11:38

标签: r

我正在尝试创建一个类似下面的函数:

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;?

2 个答案:

答案 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.