示例函数记录返回值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
我需要创建一个 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