[R] how to remove the 'promise' attribute of an R object (.Random.seed)?

Yihui Xie xie at yihui.name
Tue May 22 23:26:45 CEST 2012


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



More information about the R-help mailing list