Dear rusers, ? ? As we know, there are a lot of environments in the search() path, such as?? .Golbalenv and package:base . And ?i can just use ?.Golbalenv$a ,.Golbalenv$b to use the virable, ?but i must use as.envrionment("package:base") to find virable, i feel it not very convenient. For example, when i use the following codes to add a new env into the search() path.> tmp<-attach(NULL,name="new_name") > assign("a",2,envir=as.environment("new_name")) > a[1] 2> as.environment("new_name")$a[1] 2 ?I must always convert the name to the environment, How can i just use the following form:> tmp<-attach(NULL,name="new_name") > assign("a",2,envir=new_name) ? #like using ?.GlobalEnv > a[1] 2> new_name$a[1] 2 -- PO SU mail: desolator88 at 163.com Majored in Statistics from SJTU
John McKown
2014-Aug-25 13:53 UTC
[R] What the difference between .Golbalenv and package:base?
On Mon, Aug 25, 2014 at 1:07 AM, PO SU <rhelpmaillist at 163.com> wrote:> > > Dear rusers, > > As we know, there are a lot of environments in the search() path, such as .Golbalenv and package:base . > And i can just use .Golbalenv$a ,.Golbalenv$b to use the virable, but i must use as.envrionment("package:base") to find virable, i feel it not very convenient. > > > For example, when i use the following codes to add a new env into the search() path. > > > >> tmp<-attach(NULL,name="new_name") >> assign("a",2,envir=as.environment("new_name")) >> a > [1] 2 >> as.environment("new_name")$a > [1] 2 > I must always convert the name to the environment, How can i just use the following form: > > > >> tmp<-attach(NULL,name="new_name") >> assign("a",2,envir=new_name) #like using .GlobalEnv >> a > [1] 2 >> new_name$a > > [1] 2 > > > -- > > PO SU > mail: desolator88 at 163.com > Majored in Statistics from SJTUYou might want to try: new_name <- new.env(); # or if you prefer (such as in a function) assign("new_name",new.env(),envir=.GlobalEnv); # # You may now assign variable into this similar to: new_name$a <- 2; gvar <- new_name$a; # get the variable a from environment new_name gvar <- get("a",envir=new_name); #same thing, but wordy attach(new_name); a gvar <- a; -- There is nothing more pleasant than traveling and meeting new people! Genghis Khan Maranatha! <>< John McKown
MacQueen, Don
2014-Aug-25 18:51 UTC
[R] What the difference between .Golbalenv and package:base?
Put simply, .GlobalEnv stores objects you create package:base contains functions and objects provided by R itself You don?t need to use .GlobalEnv$a to use the variable named a. Just is ?a? by itself. a <- 4 b <- 2*a print(a) print(b) Not necessary to use print(.GlobalEnv$a) Similarly, to find an object in the base package, just type its name. I don?t know what you are trying to do, or why you think you have to use .GlobalEnv$a But in more than 20 years of using R for many different tasks, I have never had to do that. Furthermore, if you are new to R (which I would guess is the case), it seems unlikely to me that you need to work with environments or use attach() or assign(). In the vast majority of cases there are simpler ways that are easier to understand. You are aware, I hope, that > ls('.GlobalEnv') > ls(1) > ls() all return the same result? -- Don MacQueen Lawrence Livermore National Laboratory 7000 East Ave., L-627 Livermore, CA 94550 925-423-1062 On 8/24/14, 11:07 PM, "PO SU" <rhelpmaillist at 163.com> wrote:> > >Dear rusers, > > As we know, there are a lot of environments in the search() path, >such as .Golbalenv and package:base . >And i can just use .Golbalenv$a ,.Golbalenv$b to use the virable, but >i must use as.envrionment("package:base") to find virable, i feel it not >very convenient. > > >For example, when i use the following codes to add a new env into the >search() path. > > > >> tmp<-attach(NULL,name="new_name") >> assign("a",2,envir=as.environment("new_name")) >> a >[1] 2 >> as.environment("new_name")$a >[1] 2 > I must always convert the name to the environment, How can i just use >the following form: > > > >> tmp<-attach(NULL,name="new_name") >> assign("a",2,envir=new_name) #like using .GlobalEnv >> a >[1] 2 >> new_name$a > >[1] 2 > > > > > > > >-- > >PO SU >mail: desolator88 at 163.com >Majored in Statistics from SJTU >______________________________________________ >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.