[R] Odp: Problem with retrieving updated variables after attach()
David Croll
david.croll at gmx.ch
Tue Feb 10 13:23:50 CET 2009
Well, I knew that attach() only creates a copy of the variables in the
search path.
What I wanted to ask was how to *retrieve* that copy...
> mat
id age
1 NA NA
2 NA NA
3 NA NA
4 NA NA
5 NA NA
> attach(mat)
> id <<- sample(100,5)
> age <<- rnorm(5,mean=30)
How can I make a new data frame out of the id and age that were changed
above?
> Hi
>
>
> r-help-bounces at r-project.org napsal dne 10.02.2009 12:02:53:
>
>
>> Hello,
>>
>> suppose I have a data frame:
>>
>>
>>> mat
>>>
>> id age
>> 1 NA NA
>> 2 NA NA
>> 3 NA NA
>> 4 NA NA
>> 5 NA NA
>>
>> Then I attach the data frame:
>>
>>
>>> attach(mat)
>>>
>
> Look into docs what attach does. If you do not understand environments use
> attach with great care
>
> The database is not actually attached. Rather, a new environment is
> created on the search path and the elements of a list (including columns
> of a data frame) or objects in a save file or an environment are copied
> into the new environment. If you use <<- or assign to assign to an
> attached database, you only alter the attached copy, not the original
> object. (Normal assignment will place a modified version in the user's
> workspace: see the examples.) For this reason attach can lead to
> confusion.
>
>
>
>> I assign some new values...
>>
>>
>>> id <<- sample(100,5)
>>> age <<- rnorm(5,mean=30)
>>>
>> Then I want to create a new data frame from the variables id and age
>>
> which
>
>> still are attached to position 2 of the R environment...
>>
>>
>>> new_mat <- data.frame(ls(pos=2)) # I want to rescue ALL variables that
>>>
> were
>
>> created by attach(mat)
>>
>>
>>> new_mat
>>>
>> ls.pos...2.
>> 1 age
>> 2 id
>>
>> But this leads to a bogus object... how can I rescue the updated id and
>>
> age
>
>> values into new_mat?
>>
>
> What about not using attach and transform mat directly
>
>
>> mat$age <- rnorm(5,mean=30)
>> mat$id <- sample(100,5)
>> mat
>>
> id age
> 1 24 29.17842
> 2 88 31.22606
> 3 32 30.81540
> 4 5 29.31528
> 5 11 29.32775
>
> Regards
> Petr
>
>
>
>> Regards,
>>
>> David
>>
>> --
>> Jetzt 1 Monat kostenlos! GMX FreeDSL - Telefonanschluss + DSL
>> für nur 17,95 Euro/mtl.!* http://dsl.gmx.de/?ac=OM.AD.PD003K11308T4569a
>>
>> ______________________________________________
>> 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