在 MATLAB 中,函数可以返回多个输出,如下例所示:
[x y] = size(someMatrix);
在 R 中这样的事情可能吗?所有函数似乎最多返回一个参数。例如,使用单个命令声明数据框的行数和列数会很棒,如下面的代码:
[x y] <- dim(some.data.frame)
我看过,但我找不到这个问题的答案。
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]]