【问题标题】:passing objects to return results in an error传递对象以返回导致错误
【发布时间】:2012-08-04 07:34:27
【问题描述】:

我预计以下代码会返回 95% 置信区间的下限和上限:

confint95 = function(mean, se)
{
  confint = abs(se*1.96)
  lower = abs(mean-cint)
  upper = abs(mean+cint)
  return(lower,upper) 
}

但这给出了这样的信息:

返回错误(lower, upper) : 不允许多参数返回

如何设置函数以返回 95% 置信区间的下限和上限?

【问题讨论】:

    标签: r


    【解决方案1】:

    函数将返回最后一个表达式。如果你想了一会儿没有return。如果您将函数作为要评估的最后一个表达式

    lower, upper
    

    它会产生错误。如果您有 IDE,它也可能会抱怨语法错误。如@Andrie 所示,您可以通过将这两个元素与c 组合来解决这个问题。因此,您需要传递一个对象。我经常使用列表来输出不同的数据结构。在您的情况下,向量绰绰有余。

    【讨论】:

      【解决方案2】:

      要返回两个或更多结果,请使用“c”

      dummy <- function(){
        a <- 1
        b <- 22
        return(a,b)
      }
      
      dummy()
      
      # Error in return(a, b) : multi-argument returns are not permitted
      
      dummy2 <- function(){
        a <- 1
        b <- 22
        return(c(a,b))
      }
      
      dummy2()
      # [1]  1 22
      

      【讨论】:

        猜你喜欢
        • 2020-03-08
        • 2010-10-22
        • 1970-01-01
        • 2015-08-31
        • 1970-01-01
        • 1970-01-01
        • 2017-05-19
        • 2015-10-07
        • 1970-01-01
        相关资源
        最近更新 更多