我想创建一个接受一个变量并返回多个输出的函数,这样我就可以将后者用于函数之外的其他目的。以下面的简化版为例:
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'。我该如何解决这个问题?
答案 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的方式。在我的第二次阅读中,我认为他试图了解函数具有环境的概念,并且除非它们以定义的结构返回,否则您不能指望变量在它们之外持久存在。列表是返回更复杂对象的典型结构。可能最好返回一个命名列表,以便索引约定可用。