记录返回值按样本函数返回

时间:2015-03-27 10:16:46

标签: r sample

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

我这样做了

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

我认为调用fetches变量会得到我所需的向量。但是我得到的输出&#34;找不到对象&#34;同时要求提取

由于

1 个答案:

答案 0 :(得分:0)

我会使用“隐形”环境并预先分配一堆值:

#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