示例函数记录返回值return

Recording the Returned values return by sample function

我需要创建一个 throw 函数,在用户每次使用 throw() 函数时 returns 一个 1 到 6 之间的随机数。但是我需要记录用户在用户不知道的变量中获得的值。这个想法是我可以在稍后的某个时间点交叉验证报告值和实际值。

我是这样处理的

throw<-function(){
   dice<-c(1:6)
    A<-c(0,0)
       x<-sample(dice,1)
        fetches<-c(A,x)
          x
}

我认为调用 fetches 变量可以获得所需的 vector.But 我在调用 fetches 时得到了输出 "object not found"

谢谢

我会使用 "invisible" 环境并预分配一组值:

#objects with a name starting with . are invisible
.e <- new.env(, parent = .GlobalEnv)
#pre-allocate
.e$fetches <- integer(100)

throw<-function(){ 
  dice <- c(1:6)
  x <- sample(dice,1)
  #check if vector has room for new values, grow if necessary
  if (sum(.e$fetches == 0L) == 0L) .e$fetches <- c(.e$fetches, integer(100))
  .e$fetches[which.min(.e$fetches)] <- x
  return("complete")
}

set.seed(42)
throw()
#[1] "complete"
throw()
#[1] "complete"
.e$fetches[.e$fetches != 0L]
#[1] 6 6