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.