OK thanks as:
myenv <- new.env(parent = emptyenv())
fun <- function(){
fun1 <- function(){
myenv$X <- 5
}
}
fun()
ls(myenv)
#X
X
#5
?__
c/ /'_;~~~~kmezhoud
(*) \(*) ????? ??????
http://bioinformatics.tn/
On Tue, Dec 2, 2014 at 5:47 PM, Greg Snow <538280 at gmail.com> wrote:
> By "At the top level" Hadley meant to put that code outside of
the
> function definition. In you source file that line should be very near the
> top, before any function definitions. Then "myenv" will not be
temporary
> (well it will go away when you end the R session). Further, when this code
> is compiled into a package then "myenv" becomes package local,
meaning that
> functions within the package can access it and the objects inside of it,
> but it will not interfere with any other packages or the global
environment.
>
> On Tue, Dec 2, 2014 at 9:32 AM, Karim Mezhoud <kmezhoud at gmail.com>
wrote:
>
>> Thanks Dr Hadley,
>>
>> but when I use a function the myenv remains temporary and I am to face
the
>> same problem.
>>
>>
>> fun <- function(){
>>
>> myenv <- new.env(parent = emptyenv())
>>
>> fun1 <- function(){
>> myenv$X <- 5
>> }
>>
>> }
>>
>> ls(myEnv)
>> #character(0)
>>
>> ?__
>> c/ /'_;~~~~kmezhoud
>> (*) \(*) ????? ??????
>> http://bioinformatics.tn/
>>
>>
>>
>> On Tue, Dec 2, 2014 at 4:17 PM, Hadley Wickham <h.wickham at
gmail.com>
>> wrote:
>>
>> > At the top level do:
>> >
>> > myenv <- new.env(parent = emptyenv())
>> >
>> > Then in your functions do
>> >
>> > myenv$x <- 50
>> > myenv$x
>> >
>> > etc
>> >
>> > You also should not be using data() in that way. Perhaps you want
>> > R/sysdata.rda. See http://r-pkgs.had.co.nz/data.html for more
details.
>> >
>> > Hadley
>> >
>> > On Tue, Dec 2, 2014 at 2:28 AM, Karim Mezhoud <kmezhoud at
gmail.com>
>> wrote:
>> > > Dear All,
>> > >
>> > > I am writing a GUIpackage that needs global variables.
>> > > I had many warning message when I checked the code as for
example:
>> > > geteSet: no visible binding for global variable
?curselectCases?
>> > > I would like to write a function that creates a global place
for
>> Objects
>> > to
>> > > be loaded as:
>> > >
>> > >
>> > > Fun <- function(){
>> > >
>> > > Object <- 5
>> > >
>> > > Var2Global <- function(Object){
>> > > .myDataEnv <- new.env(parent=emptyenv()) # not exported
>> > > isLoaded <- function(Object) {
>> > > exists(Object, .myDataEnv)
>> > > }
>> > > getData <- function(Object) {
>> > > if (!isLoaded(Object)) data(Object, envir=.myDataEnv)
>> > > .myDataEnv[[Object]]
>> > > }
>> > > }
>> > >
>> > > }
>> > >
>> > > To avoid the use of: Object <<- 5
>> > >
>> > > but it seems not working yet. Object == 5 is not a global
variable
>> after
>> > > running Fun().
>> > >
>> > > Any Idea?
>> > > Thanks
>> > > ?__
>> > > c/ /'_;~~~~kmezhoud
>> > > (*) \(*) ????? ??????
>> > > http://bioinformatics.tn/
>> > >
>> > > [[alternative HTML version deleted]]
>> > >
>> > > ______________________________________________
>> > > R-help at r-project.org mailing list -- To UNSUBSCRIBE and
more, see
>> > > 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.
>> >
>> >
>> >
>> > --
>> > http://had.co.nz/
>> >
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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.
>>
>
>
>
> --
> Gregory (Greg) L. Snow Ph.D.
> 538280 at gmail.com
>
[[alternative HTML version deleted]]
Glad to see this query and the responses. You all just helped me to eliminate the use of global variables from my R package. I knew they were not recommended, but I didn't know how to get around using them. Thanks! Jean On Tue, Dec 2, 2014 at 10:59 AM, Karim Mezhoud <kmezhoud at gmail.com> wrote:> OK thanks as: > > myenv <- new.env(parent = emptyenv()) > fun <- function(){ > fun1 <- function(){ > myenv$X <- 5 > } > > } > fun() > ls(myenv) > #X > X > #5 > > ?__ > c/ /'_;~~~~kmezhoud > (*) \(*) ????? ?????? > http://bioinformatics.tn/ > > > > On Tue, Dec 2, 2014 at 5:47 PM, Greg Snow <538280 at gmail.com> wrote: > > > By "At the top level" Hadley meant to put that code outside of the > > function definition. In you source file that line should be very near > the > > top, before any function definitions. Then "myenv" will not be temporary > > (well it will go away when you end the R session). Further, when this > code > > is compiled into a package then "myenv" becomes package local, meaning > that > > functions within the package can access it and the objects inside of it, > > but it will not interfere with any other packages or the global > environment. > > > > On Tue, Dec 2, 2014 at 9:32 AM, Karim Mezhoud <kmezhoud at gmail.com> > wrote: > > > >> Thanks Dr Hadley, > >> > >> but when I use a function the myenv remains temporary and I am to face > the > >> same problem. > >> > >> > >> fun <- function(){ > >> > >> myenv <- new.env(parent = emptyenv()) > >> > >> fun1 <- function(){ > >> myenv$X <- 5 > >> } > >> > >> } > >> > >> ls(myEnv) > >> #character(0) > >> > >> ?__ > >> c/ /'_;~~~~kmezhoud > >> (*) \(*) ????? ?????? > >> http://bioinformatics.tn/ > >> > >> > >> > >> On Tue, Dec 2, 2014 at 4:17 PM, Hadley Wickham <h.wickham at gmail.com> > >> wrote: > >> > >> > At the top level do: > >> > > >> > myenv <- new.env(parent = emptyenv()) > >> > > >> > Then in your functions do > >> > > >> > myenv$x <- 50 > >> > myenv$x > >> > > >> > etc > >> > > >> > You also should not be using data() in that way. Perhaps you want > >> > R/sysdata.rda. See http://r-pkgs.had.co.nz/data.html for more > details. > >> > > >> > Hadley > >> > > >> > On Tue, Dec 2, 2014 at 2:28 AM, Karim Mezhoud <kmezhoud at gmail.com> > >> wrote: > >> > > Dear All, > >> > > > >> > > I am writing a GUIpackage that needs global variables. > >> > > I had many warning message when I checked the code as for example: > >> > > geteSet: no visible binding for global variable ?curselectCases? > >> > > I would like to write a function that creates a global place for > >> Objects > >> > to > >> > > be loaded as: > >> > > > >> > > > >> > > Fun <- function(){ > >> > > > >> > > Object <- 5 > >> > > > >> > > Var2Global <- function(Object){ > >> > > .myDataEnv <- new.env(parent=emptyenv()) # not exported > >> > > isLoaded <- function(Object) { > >> > > exists(Object, .myDataEnv) > >> > > } > >> > > getData <- function(Object) { > >> > > if (!isLoaded(Object)) data(Object, envir=.myDataEnv) > >> > > .myDataEnv[[Object]] > >> > > } > >> > > } > >> > > > >> > > } > >> > > > >> > > To avoid the use of: Object <<- 5 > >> > > > >> > > but it seems not working yet. Object == 5 is not a global variable > >> after > >> > > running Fun(). > >> > > > >> > > Any Idea? > >> > > Thanks > >> > > ?__ > >> > > c/ /'_;~~~~kmezhoud > >> > > (*) \(*) ????? ?????? > >> > > http://bioinformatics.tn/ > >> > > > >> > > [[alternative HTML version deleted]] > >> > > > >> > > ______________________________________________ > >> > > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > >> > > 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. > >> > > >> > > >> > > >> > -- > >> > http://had.co.nz/ > >> > > >> > >> [[alternative HTML version deleted]] > >> > >> ______________________________________________ > >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > >> 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. > >> > > > > > > > > -- > > Gregory (Greg) L. Snow Ph.D. > > 538280 at gmail.com > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. >[[alternative HTML version deleted]]
Hi,
An other alternative using "assign" function
func <- function(){
X <- 5
assign("X", X, envir = .GlobalEnv)
}
?__
c/ /'_;~~~~kmezhoud
(*) \(*) ????? ??????
http://bioinformatics.tn/
On Tue, Dec 2, 2014 at 8:40 PM, Adams, Jean <jvadams at usgs.gov> wrote:
> Glad to see this query and the responses. You all just helped me to
> eliminate the use of global variables from my R package. I knew they were
> not recommended, but I didn't know how to get around using them.
>
> Thanks!
>
> Jean
>
> On Tue, Dec 2, 2014 at 10:59 AM, Karim Mezhoud <kmezhoud at
gmail.com> wrote:
>
>> OK thanks as:
>>
>> myenv <- new.env(parent = emptyenv())
>> fun <- function(){
>> fun1 <- function(){
>> myenv$X <- 5
>> }
>>
>> }
>> fun()
>> ls(myenv)
>> #X
>> X
>> #5
>>
>> ?__
>> c/ /'_;~~~~kmezhoud
>> (*) \(*) ????? ??????
>> http://bioinformatics.tn/
>>
>>
>>
>> On Tue, Dec 2, 2014 at 5:47 PM, Greg Snow <538280 at gmail.com>
wrote:
>>
>> > By "At the top level" Hadley meant to put that code
outside of the
>> > function definition. In you source file that line should be very
near
>> the
>> > top, before any function definitions. Then "myenv" will
not be
>> temporary
>> > (well it will go away when you end the R session). Further, when
this
>> code
>> > is compiled into a package then "myenv" becomes package
local, meaning
>> that
>> > functions within the package can access it and the objects inside
of it,
>> > but it will not interfere with any other packages or the global
>> environment.
>> >
>> > On Tue, Dec 2, 2014 at 9:32 AM, Karim Mezhoud <kmezhoud at
gmail.com>
>> wrote:
>> >
>> >> Thanks Dr Hadley,
>> >>
>> >> but when I use a function the myenv remains temporary and I am
to face
>> the
>> >> same problem.
>> >>
>> >>
>> >> fun <- function(){
>> >>
>> >> myenv <- new.env(parent = emptyenv())
>> >>
>> >> fun1 <- function(){
>> >> myenv$X <- 5
>> >> }
>> >>
>> >> }
>> >>
>> >> ls(myEnv)
>> >> #character(0)
>> >>
>> >> ?__
>> >> c/ /'_;~~~~kmezhoud
>> >> (*) \(*) ????? ??????
>> >> http://bioinformatics.tn/
>> >>
>> >>
>> >>
>> >> On Tue, Dec 2, 2014 at 4:17 PM, Hadley Wickham <h.wickham
at gmail.com>
>> >> wrote:
>> >>
>> >> > At the top level do:
>> >> >
>> >> > myenv <- new.env(parent = emptyenv())
>> >> >
>> >> > Then in your functions do
>> >> >
>> >> > myenv$x <- 50
>> >> > myenv$x
>> >> >
>> >> > etc
>> >> >
>> >> > You also should not be using data() in that way. Perhaps
you want
>> >> > R/sysdata.rda. See http://r-pkgs.had.co.nz/data.html for
more
>> details.
>> >> >
>> >> > Hadley
>> >> >
>> >> > On Tue, Dec 2, 2014 at 2:28 AM, Karim Mezhoud
<kmezhoud at gmail.com>
>> >> wrote:
>> >> > > Dear All,
>> >> > >
>> >> > > I am writing a GUIpackage that needs global
variables.
>> >> > > I had many warning message when I checked the code
as for example:
>> >> > > geteSet: no visible binding for global variable
?curselectCases?
>> >> > > I would like to write a function that creates a
global place for
>> >> Objects
>> >> > to
>> >> > > be loaded as:
>> >> > >
>> >> > >
>> >> > > Fun <- function(){
>> >> > >
>> >> > > Object <- 5
>> >> > >
>> >> > > Var2Global <- function(Object){
>> >> > > .myDataEnv <- new.env(parent=emptyenv()) # not
exported
>> >> > > isLoaded <- function(Object) {
>> >> > > exists(Object, .myDataEnv)
>> >> > > }
>> >> > > getData <- function(Object) {
>> >> > > if (!isLoaded(Object)) data(Object,
envir=.myDataEnv)
>> >> > > .myDataEnv[[Object]]
>> >> > > }
>> >> > > }
>> >> > >
>> >> > > }
>> >> > >
>> >> > > To avoid the use of: Object <<- 5
>> >> > >
>> >> > > but it seems not working yet. Object == 5 is not a
global variable
>> >> after
>> >> > > running Fun().
>> >> > >
>> >> > > Any Idea?
>> >> > > Thanks
>> >> > > ?__
>> >> > > c/ /'_;~~~~kmezhoud
>> >> > > (*) \(*) ????? ??????
>> >> > > http://bioinformatics.tn/
>> >> > >
>> >> > > [[alternative HTML version deleted]]
>> >> > >
>> >> > > ______________________________________________
>> >> > > R-help at r-project.org mailing list -- To
UNSUBSCRIBE and more, see
>> >> > > 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.
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > http://had.co.nz/
>> >> >
>> >>
>> >> [[alternative HTML version deleted]]
>> >>
>> >> ______________________________________________
>> >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and
more, see
>> >> 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.
>> >>
>> >
>> >
>> >
>> > --
>> > Gregory (Greg) L. Snow Ph.D.
>> > 538280 at gmail.com
>> >
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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.
>>
>
>
[[alternative HTML version deleted]]