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

Duncan Murdoch murdoch.duncan at gmail.com
Wed May 23 03:08:27 CEST 2012


On 12-05-22 12:22 PM, 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'.

You can remove it by a simple assignment:

.Random.seed <- .Random.seed

will do it.  (The reason is that it doesn't copy the object blindly, it 
evaluates the RHS to get 1L, and it's a regular assignment, so that gets 
put into the LHS.)

Duncan Murdoch

>
> My question is, how to make R use the real value of .Random.seed
> instead of complaining about the promise? Thanks!
>
> 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.



More information about the R-help mailing list