[BioC] assigning phenoData via assign

Benilton Carvalho bcarvalh at jhsph.edu
Mon May 7 19:33:16 CEST 2007


Hi Martin and Morgan,

I'm just writing some scripts to automate a few things here.

My function takes an object name (say, 'foo') and a path.

So, it loads data stored in path does lots of computations and stores  
the results in 'foo'.

I have a helper function that builds the correct phenoData for 'foo'.  
So I wanted to modify 'foo' after the computations are done.

Something like:

myAutomator <- function(objName, path){
   load(paste(path, "theData.rda", sep="/"))
   assign(objName, functionThatTakesLongTime(data))
   ## here I'd like to modify phenoData
   save(list=objName, file=paste(objName, "rda", sep="."))
}

But I just realized that for this particular case, the best is to  
pass the updated phenoData to functionThatTakesLongTime.

b

On May 7, 2007, at 1:12 PM, Seth Falcon wrote:

> Hi Benilton,
>
> Benilton Carvalho <bcarvalh at jhsph.edu> writes:
>> I'm trying to set the phenoData slot using get() or something
>> similar, eg:
>
> First of all, you probably want to use phenoData(foo) <- updatedPheno,
> not direct slot access.
>
>> library(Biobase)
>> objName <- "sample.ExpressionSet"
>> data(list=objName)
>> pd <- phenoData(get(objName))
>>
>> get(objName)@phenoData <- pd    ## this will fail
>
> Perhaps it would help if you gave some context of what it is you are
> trying to achieve.
>
> Conceptually, get() returns a copy of the object requested and it
> doesn't make sense to modify an anonymous copy.
>
> Any modification of an object results in a copy (there are exceptions,
> but let's ignore them for now).  But R is clever about when the copy
> is actually made (just assigning to a tmp var doesn't trigger a copy).
>
>> I could copy the object to a temporary one:
>>
>> tmp <- get(objName)
>> tmp at phenoData <- pd
>> assign(objName, tmp)
>> rm(tmp)
>>
>> how can I avoid this copy?
>
> I'm not sure you can, but maybe I'm not understanding what you really
> want to do.
>
> + seth
>
> -- 
> Seth Falcon | Computational Biology | Fred Hutchinson Cancer  
> Research Center
> http://bioconductor.org
>
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/ 
> gmane.science.biology.informatics.conductor



More information about the Bioconductor mailing list