R:如何让用户定义的函数返回多个输出?

时间:2016-02-07 03:11:39

标签: r output user-defined-functions

我想创建一个接受一个变量并返回多个输出的函数,这样我就可以将后者用于函数之外的其他目的。以下面的简化版为例:

user <- function(x){a <- x+1; a <- a+0.1; b <- a*-1}
sum(a,b)

因此,如果我输入user(10)a将为11.1,b将为-11.1,而sum(a,b)将返回0.但是目前R告诉我两个对象找到'a'或对象'b'。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

这真的很容易。只需返回一个清单:

user <- function(x){a <- x+1; a <- a+0.1; b <- a*-1; return( list(a,b, absum=sum(a,b) )) }

至少在我第一次阅读时,我不同意Dason。这正是做R的方式。在我的第二次阅读中,我认为他试图了解函数具有环境的概念,并且除非它们以定义的结构返回,否则您不能指望变量在它们之外持久存在。列表是返回更复杂对象的典型结构。可能最好返回一个命名列表,以便索引约定可用。