On Mon, 5 Jan 2004, Thomas Stabla wrote:
I want to use global variables in a package which is using a namespace.
But I don`t know how to change the values of the global variables.
I know how to get the value of the variables, e.g.
[1] 3.141593
but following code doesn`t work
Error: Object "base" not found
Base is a special case, and
assign("pi", 3.14, envir=NULL)
will do this (although please don't).
All other namespaces are sealed, so you will get something like
library(MASS)
assign("lda", pi, pos=2)
Error in assign("lda", pi, pos = 2) : can't change value of a locked binding
Now, that attempts to change the export, and not the value in the
namespace, so there is a question of which you want and why you want to
change it. (Changing the value in the namespace does not change the
export, which is a copy, but as _both_ the namespace and exports
environments are sealed, this would not matter much.)