[R] What the difference between .Golbalenv and package:base?
PO SU
rhelpmaillist at 163.com
Tue Aug 26 06:07:58 CEST 2014
First, sorry for my pool english expression which make you misunderstanding of my original purpose.
Sometimes, suppose a object in both stats and base, then i type the object name, then after R search the search() list, R will use the object in stats, is it right?( I just suppose, stats can be any package which libraried into R.)
Then i know that, .GlobalEnv or globalenv() is the global environment object, baseenv() returns the base environment object.
I also know that, i can convert the environment name into the real environment object by using stats<-as.environment("package:stats"), And the stats environment's name can be obtained using environmentName(stats), but it returns "". (why?)
Then i use environmentName(.GlobalEnv) then i get "R_GlobalEnv", then i use as.environment("R_GlobalEnv"), it does't work.(why?)
In one word, as.environment(x), x is somthing not the environment's name.
But, when i add a environment into the search() list, after i attr(newenvir,"name")<-"new_name"
I can use the as.environment("new_name") to obtain the added environment. (why?)
Hope you understand my meaning :)
--
PO SU
mail: desolator88 at 163.com
Majored in Statistics from SJTU
At 2014-08-26 02:51:54, "MacQueen, Don" <macqueen1 at llnl.gov> wrote:
>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.
>
More information about the R-help
mailing list