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<xieyi...@gmail.com>
Phone: 515-294-2465 Web: http://yihui.name
Department of Statistics, Iowa State University
2215 Snedecor Hall, Ames, IA

______________________________________________
R-help@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.

______________________________________________
R-help@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.

Reply via email to