how to remove the 'promise' attribute of an R object (.Random.seed)?
I did not use delayedAssign() directly; I was using lazyLoad() and .Random.seed was saved in a database. The real story out there is the caching of my knitr package -- lazyLoad() was used to speed up the compilation of Sweave documents. I know lazyLoad() is supposed to be used only by R itself, but it is very helpful for the purpose of caching as well. Or is it possible to change the code in src/main/RNG.c so that the seed is force()d if it is a promise? Anyway, I can use save() and load() in this case instead of lazyLoad() if the above is not going to happen. Thanks a lot! Regards, Yihui -- Yihui Xie <xieyihui at gmail.com> Phone: 515-294-2465 Web: http://yihui.name Department of Statistics, Iowa State University 2215 Snedecor Hall, Ames, IA
On Tue, May 22, 2012 at 12:49 PM, <luke-tierney at uiowa.edu> wrote:
On Tue, 22 May 2012, Yihui Xie wrote:
Hi,
The problem arises when I lazyLoad() the .Random.seed from a
previously saved database. To simplify the process of reproducing the
problem, see the example below:
## this assignment may not really make sense, but illustrates the problem
delayedAssign('.Random.seed', 1L)
typeof(.Random.seed)
# [1] "integer"
rnorm(1)
# Error in rnorm(1) :
# ?.Random.seed is not an integer vector but of type 'promise'
typeof(.Random.seed)
# [1] "integer"
So there must be an "attribute" "promise" somewhere attached to
.Random.seed, and I cannot find it. The R function typeof() does not
reveal it, but the TYPEOF() function in src/main/RNG.c says it is a
'promise'.
My question is, how to make R use the real value of .Random.seed
instead of complaining about the promise? Thanks!
Siple answer: Don't creat the promise in the first place, i.e. don't use delayedAssign. What is the real context where this arises? Knowing that may help us decide whether the internals should address this possibility. Best, luke
Regards, Yihui -- Yihui Xie <xieyihui at gmail.com> Phone: 515-294-2465 Web: http://yihui.name Department of Statistics, Iowa State University 2215 Snedecor Hall, Ames, IA
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
-- Luke Tierney Chair, Statistics and Actuarial Science Ralph E. Wareham Professor of Mathematical Sciences University of Iowa ? ? ? ? ? ? ? ? ?Phone: ? ? ? ? ? ? 319-335-3386 Department of Statistics and ? ? ? ?Fax: ? ? ? ? ? ? ? 319-335-3017 ? Actuarial Science 241 Schaeffer Hall ? ? ? ? ? ? ? ? ?email: ? luke-tierney at uiowa.edu Iowa City, IA 52242 ? ? ? ? ? ? ? ? WWW: ?http://www.stat.uiowa.edu