Aleš Žiberna
2005-Aug-02 08:12 UTC
[R] Putting all elementes of the list in an enviorment of a function
Hello!
I have two functions.
The first one prepares the arguments for the second one. What is the best
way to put all resoults of the first one into the second one? I tried
attach, however the object in the "main" enviorment have a priority
over the
ones in list. An example is at the end.
Thanks in advance for any suggestions!
Ales Ziberna
For example - I would like to use just "a" instead of
"list$a" in fuction
"second"
first<-function(a,b){
if(length(a)!=1) a <- a[1]
if(length(b)!=1) b <- b[1]
list(a=a,b=b)
}
second<-function(list,c){
list$a + list$b + c
}
a<-c(2,3)
b<-4:64
c<-5
res<-first(a,b)
second(res,c)
Prof Brian Ripley
2005-Aug-02 08:35 UTC
[R] Putting all elementes of the list in an enviorment of a function
?with will help you. I would avoid using 'list' as a function name, as it will confuse people and might confuse R too. On Tue, 2 Aug 2005, [iso-8859-2] Alea }iberna wrote:> Hello! > > I have two functions. > > The first one prepares the arguments for the second one. What is the best > way to put all resoults of the first one into the second one? I tried > attach, however the object in the "main" enviorment have a priority over the > ones in list. An example is at the end. > > Thanks in advance for any suggestions! > Ales Ziberna > > For example - I would like to use just "a" instead of "list$a" in fuction > "second" > > first<-function(a,b){ > if(length(a)!=1) a <- a[1] > if(length(b)!=1) b <- b[1] > list(a=a,b=b) > } > > second<-function(list,c){ > list$a + list$b + c > } > > a<-c(2,3) > b<-4:64 > c<-5 > > res<-first(a,b) > second(res,c)-- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595