从函数中返回的函数返回多个对象

时间:2013-09-16 08:41:13

标签: r

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

像这样:

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

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

1 个答案:

答案 0 :(得分: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