1

我想返回在函数内分配的所有对象,

像这样:

foo <- function() { 
  as <- LETTERS[1:3]
  for(a in as) assign(a, sample(1000, 1))
  return(as) # obviously not working
  }

我知道我可能应该将它包装在一个列表中,但无法让它工作......

4

1 回答 1

2

我会按照您的建议将其作为列表返回,并且setNames有点为此设计...

foo <- function( n ) { 
  as <- LETTERS[1:n]
  setNames( replicate( n , sample( 1000 , 1 ) , simplify = FALSE  ), as )
  }

foo(3)
#$A
#[1] 286

#$B
#[1] 54

#$C
#[1] 791
于 2013-09-16T08:53:09.510 回答