1

在 MATLAB 中,函数可以返回多个输出,如下例所示:

[x y] = size(someMatrix);

在 R 中这样的事情可能吗?所有函数似乎最多返回一个参数。例如,使用单个命令声明数据框的行数和列数会很棒,如下面的代码:

[x y] <- dim(some.data.frame)

我看过,但我找不到这个问题的答案。

4

1 回答 1

4

R范式是将属于一起的东西组合在一起。

这就是为什么 dim(obj) 返回包含两个值而不是两个单独变量的向量的原因。来自另一种编程语言背景,起初这似乎违反直觉。但它使代码可读,并且是许多 R 函数和包所期望的。

您可以使用list()将多个对象(任何类型)组合在一起并从函数中返回该列表:

multiple_returns <- function() {
  a <- "char"
  b <- 1
  c <- matrix(c(1,2,3,4), ncol=2)
  return(list(a, b, c))
}

returned <- multiple_returns()
returned[[1]]
returned[[2]]
returned[[3]]
于 2013-11-05T16:12:02.520 回答