Skip to content
Back to formatted view

Raw Message

Message-ID: <49917EA2.6010909@biostat.ku.dk>
Date: 2009-02-10T13:18:26Z
From: Peter Dalgaard
Subject: Odp: Problem with retrieving updated variables after attach()
In-Reply-To: <20090210205744.52bad6fe@berwin-nus1>

Berwin A Turlach wrote:
> G'day David,
> 
> On Tue, 10 Feb 2009 13:23:50 +0100
> David Croll <david.croll at gmx.ch> wrote:
> 
>> 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?
> 
> R> new.df <- data.frame(id,age)
> 
> Or, perhaps more automatic:
> 
> R> new.df <- do.call(data.frame, sapply(ls(pos=2), as.name))
> 
> Is this what you are after?

There is also

as.data.frame(as.list(pos.to.env(2)))

or ...as.environment("mat")

I wouldn't recommend using <<- like that though; the consequences of
spelling mistakes on the LHS are a bit scary. If you must, consider

with(pos.to.env(2),{
  id <- sample(100,5)
  age <- rnorm(5,mean=30)
})

or better, modify before attach, using within() or transform().

-- 
   O__  ---- Peter Dalgaard             ?ster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)              FAX: (+45) 35327907