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