【问题标题】:How to deal with missing arguement error如何处理缺少参数错误
【发布时间】:2023-03-26 13:00:01
【问题描述】:

我正在尝试创建如下所示的函数:

if(!isGeneric("setSoilType")){
  setGeneric("setSoilType", function(soil) {standardGeneric("setSoilType")});
}
setMethod("setSoilType", signature(soil = "numeric"),
function(soil){
  K <- 200 * soil
  K
})

但是,无论何时我输入 setSoilType(),我都会收到以下错误消息并且必须进行调试:

(函数(类、fdef、mtable)中的错误: 无法找到签名“缺失”的函数“setSoilType1”的继承方法

我该如何处理这个问题,这样当我输入 setSoilType() 时,我不会收到该错误消息,而是会收到类似“缺少参数”的信息?

【问题讨论】:

    标签: r


    【解决方案1】:

    试试这个:

    if(!isGeneric("setSoilType")){
      setGeneric("setSoilType", function(soil) {standardGeneric("setSoilType")});
    }
    setMethod("setSoilType", signature("soil"),
    function(soil){
      K <- 200 * soil
      K
    })
    

    我基于this

    您需要重新编写它以更像我链接的示例。

    【讨论】:

      【解决方案2】:

      一种解决方案是定义一个打印错误的空值重载:

      setMethod('setSoilType',signature(),function() stop('argument missing.',call.=F));
      setSoilType();
      ## Error: argument missing.
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-10
        • 1970-01-01
        相关资源
        最近更新 更多