【发布时间】:2015-03-27 13:47:30
【问题描述】:
我正在做一个欺骗游戏,我正在尝试用 R 来模拟。 我有一个长度为 n 的随机向量 A。我想要一个函数。例如,提取使得用户第一次使用 extract() 时,他得到 A[1],第二次他得到 A[2] 直到 A[n]。我知道如果我可以在提取函数中为 i 提供一个参数会容易得多,但我不想给人留下我们正在记录用户操作的印象。
我的尝试
j<-1
extract<-function(){
B<-numeric(n)
x<-sample(c(1:6),1)
B[i]<-j
j<-j+1
return(x)
}
然后调用B获取结果向量 但它不起作用
【问题讨论】:
-
你需要创建一个“副作用”。将索引保存在某处(例如,在
.GlobalEnv或其他环境中),并让您的函数在每次调用extract时检索并更新该索引。您可以为此使用assign()。 -
非常感谢。我花了一天时间才弄清楚。终于成功了
-
顺便问一下,每当调用相关函数时,我如何更新索引?