R可以返回多个输出变量吗?

时间:2013-11-05 15:47:42

标签: r matlab return output

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

[x y] = size(someMatrix);

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

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

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

1 个答案:

答案 0 :(得分:3)

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]]