Execute a function

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Execute a function

carla moreira

Hi,

I would like to evaluate a function, with 3 arguments, for instance,

myfunc<-function(a,b,c) { sqrt(a)-exp(b)+4*c
                                                }

How to execute  myfunc(x,y,z), for all x, all y and all z, where x,y,z are vectors?

Thank you very much in advance
Reply | Threaded
Open this post in threaded view
|

Re: Execute a function

Jessica Streicher
You mean executing the function for all combinations of values?
For example, if you have a<-b<-c<-1:2
you would get back the values of

myfunc(1,1,1)
myfunc(1,1,2)
myfunc(1,2,1)
myfunc(1,2,2)
myfunc(2,1,1)
myfunc(2,1,2)
myfunc(2,2,1)
myfunc(2,2,2)

?

On 20.07.2012, at 13:05, carla moreira wrote:

>
> Hi,
>
> I would like to evaluate a function, with 3 arguments, for instance,
>
> myfunc<-function(a,b,c) { sqrt(a)-exp(b)+4*c
>                                                }
>
> How to execute  myfunc(x,y,z), for all x, all y and all z, where x,y,z are
> vectors?
>
> Thank you very much in advance
>
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Execute-a-function-tp4637182.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> [hidden email] 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.

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: Execute a function

Benno Pütz
In reply to this post by carla moreira
Not quite sure what you are aiming at, but looking at ?mapply or ?expand.grid could be helpful

        Benno

On Jul 20, 2012, at 1:05 PM, carla moreira wrote:

>
> Hi,
>
> I would like to evaluate a function, with 3 arguments, for instance,
>
> myfunc<-function(a,b,c) { sqrt(a)-exp(b)+4*c
>                                                }
>
> How to execute  myfunc(x,y,z), for all x, all y and all z, where x,y,z are
> vectors?
>
> Thank you very much in advance
>
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Execute-a-function-tp4637182.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> [hidden email] 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.
>
Benno Pütz
Statistical Genetics
MPI of Psychiatry
Kraepelinstr. 2-10
80804 Munich, Germany
T: ++49-(0)89-306 22 222
F: ++49-(0)89-306 22 601




        [[alternative HTML version deleted]]


______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: Execute a function

carla moreira
In reply to this post by Jessica Streicher
Yes, I do.

But I need to control how the permutations are done.

Thank you.

2012/7/20 Jessica Streicher <[hidden email]>

> You mean executing the function for all combinations of values?
> For example, if you have a<-b<-c<-1:2
> you would get back the values of
>
> myfunc(1,1,1)
> myfunc(1,1,2)
> myfunc(1,2,1)
> myfunc(1,2,2)
> myfunc(2,1,1)
> myfunc(2,1,2)
> myfunc(2,2,1)
> myfunc(2,2,2)
>
> ?
>
> On 20.07.2012, at 13:05, carla moreira wrote:
>
> >
> > Hi,
> >
> > I would like to evaluate a function, with 3 arguments, for instance,
> >
> > myfunc<-function(a,b,c) { sqrt(a)-exp(b)+4*c
> >                                                }
> >
> > How to execute  myfunc(x,y,z), for all x, all y and all z, where x,y,z
> are
> > vectors?
> >
> > Thank you very much in advance
> >
> >
> >
> > --
> > View this message in context:
> http://r.789695.n4.nabble.com/Execute-a-function-tp4637182.html
> > Sent from the R help mailing list archive at Nabble.com.
> >
> > ______________________________________________
> > [hidden email] 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.
>
>


--
Carla Moreira

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: Execute a function

Jessica Streicher
Well, what do you want to control there?

Need a subset? Need an ordering?


On 20.07.2012, at 15:00, Carla Moreira wrote:

> Yes, I do.
>  
> But I need to control how the permutations are done.
>  
> Thank you.
>
> 2012/7/20 Jessica Streicher <[hidden email]>
> You mean executing the function for all combinations of values?
> For example, if you have a<-b<-c<-1:2
> you would get back the values of
>
> myfunc(1,1,1)
> myfunc(1,1,2)
> myfunc(1,2,1)
> myfunc(1,2,2)
> myfunc(2,1,1)
> myfunc(2,1,2)
> myfunc(2,2,1)
> myfunc(2,2,2)
>
> ?
>
> On 20.07.2012, at 13:05, carla moreira wrote:
>
> >
> > Hi,
> >
> > I would like to evaluate a function, with 3 arguments, for instance,
> >
> > myfunc<-function(a,b,c) { sqrt(a)-exp(b)+4*c
> >                                                }
> >
> > How to execute  myfunc(x,y,z), for all x, all y and all z, where x,y,z are
> > vectors?
> >
> > Thank you very much in advance
> >
> >
> >
> > --
> > View this message in context: http://r.789695.n4.nabble.com/Execute-a-function-tp4637182.html
> > Sent from the R help mailing list archive at Nabble.com.
> >
> > ______________________________________________
> > [hidden email] 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.
>
>
>
>
> --
> Carla Moreira


        [[alternative HTML version deleted]]

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: Execute a function

Peter Ehlers
In reply to this post by carla moreira
On 2012-07-20 04:05, carla moreira wrote:

>
> Hi,
>
> I would like to evaluate a function, with 3 arguments, for instance,
>
> myfunc<-function(a,b,c) { sqrt(a)-exp(b)+4*c
>                                                  }
>
> How to execute  myfunc(x,y,z), for all x, all y and all z, where x,y,z are
> vectors?

Is this what you have in mind:

   myfunc <- function(a, b, c){ sqrt(a)-exp(b)+4*c }
   myfunc2 <- function(x){
     a <- x[1]
     b <- x[2]
     c <- x[3]
     myfunc(a, b, c)
   }

   x <- c(1, 4, 9)
   y <- 1:2
   z <- c(10, -10, 2, 20)
   d <- expand.grid(x, y, z)
   d$value <- apply(d, 1, myfunc2)

?

Peter Ehlers

>
> Thank you very much in advance
>
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Execute-a-function-tp4637182.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> [hidden email] 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.
>

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: Execute a function

carla moreira
Yes,
 
that's this.
 
Thank you very much.


 
2012/7/20 Peter Ehlers [via R] <[hidden email]>
On 2012-07-20 04:05, carla moreira wrote:

>
> Hi,
>
> I would like to evaluate a function, with 3 arguments, for instance,
>
> myfunc<-function(a,b,c) { sqrt(a)-exp(b)+4*c
>                                                  }
>
> How to execute  myfunc(x,y,z), for all x, all y and all z, where x,y,z are
> vectors?
Is this what you have in mind:

   myfunc <- function(a, b, c){ sqrt(a)-exp(b)+4*c }
   myfunc2 <- function(x){
     a <- x[1]
     b <- x[2]
     c <- x[3]
     myfunc(a, b, c)
   }

   x <- c(1, 4, 9)
   y <- 1:2
   z <- c(10, -10, 2, 20)
   d <- expand.grid(x, y, z)
   d$value <- apply(d, 1, myfunc2)

?

Peter Ehlers

>
> Thank you very much in advance
>
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Execute-a-function-tp4637182.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> [hidden email] 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.
>

______________________________________________
[hidden email] 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.



If you reply to this email, your message will be added to the discussion below:
http://r.789695.n4.nabble.com/Execute-a-function-tp4637182p4637212.html
To unsubscribe from Execute a function, click here.
NAML



--
Carla Moreira
Reply | Threaded
Open this post in threaded view
|

Re: Execute a function

Bert Gunter
In reply to this post by Peter Ehlers
Inline.

-- Bert

On Fri, Jul 20, 2012 at 6:59 AM, Peter Ehlers <[hidden email]> wrote:

> On 2012-07-20 04:05, carla moreira wrote:
>>
>>
>> Hi,
>>
>> I would like to evaluate a function, with 3 arguments, for instance,
>>
>> myfunc<-function(a,b,c) { sqrt(a)-exp(b)+4*c
>>                                                  }
>>
>> How to execute  myfunc(x,y,z), for all x, all y and all z, where x,y,z are
>> vectors?
>
>
> Is this what you have in mind:
>
>   myfunc <- function(a, b, c){ sqrt(a)-exp(b)+4*c }
>   myfunc2 <- function(x){
>     a <- x[1]
>     b <- x[2]
>     c <- x[3]
>     myfunc(a, b, c)
>   }
>
>   x <- c(1, 4, 9)
>   y <- 1:2
>   z <- c(10, -10, 2, 20)
>   d <- expand.grid(x, y, z)

Peter, what's wrong with
with(d,myfunc(x,y,z))    ??

I realize this depends on the function be vectorizable, but isn't that
the point? It could be orders of magnitude faster than looping via
apply.

-- Bert

>   d$value <- apply(d, 1, myfunc2)
>
> ?
>
> Peter Ehlers
>
>>
>> Thank you very much in advance
>>
>>
>>
>> --
>> View this message in context:
>> http://r.789695.n4.nabble.com/Execute-a-function-tp4637182.html
>> Sent from the R help mailing list archive at Nabble.com.
>>
>> ______________________________________________
>> [hidden email] 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.
>>
>
> ______________________________________________
> [hidden email] 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.



--

Bert Gunter
Genentech Nonclinical Biostatistics

Internal Contact Info:
Phone: 467-7374
Website:
http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: Execute a function

Peter Ehlers
Bert,

The only thing wrong is that I'm still 75% asleep! Yikes!!
Thanks for the heads-up.

Carla: See Bert's solution.

Peter Ehlers

On 2012-07-20 07:10, Bert Gunter wrote:

> Inline.
>
> -- Bert
>
> On Fri, Jul 20, 2012 at 6:59 AM, Peter Ehlers <[hidden email]> wrote:
>> On 2012-07-20 04:05, carla moreira wrote:
>>>
>>>
>>> Hi,
>>>
>>> I would like to evaluate a function, with 3 arguments, for instance,
>>>
>>> myfunc<-function(a,b,c) { sqrt(a)-exp(b)+4*c
>>>                                                   }
>>>
>>> How to execute  myfunc(x,y,z), for all x, all y and all z, where x,y,z are
>>> vectors?
>>
>>
>> Is this what you have in mind:
>>
>>    myfunc <- function(a, b, c){ sqrt(a)-exp(b)+4*c }
>>    myfunc2 <- function(x){
>>      a <- x[1]
>>      b <- x[2]
>>      c <- x[3]
>>      myfunc(a, b, c)
>>    }
>>
>>    x <- c(1, 4, 9)
>>    y <- 1:2
>>    z <- c(10, -10, 2, 20)
>>    d <- expand.grid(x, y, z)
>
> Peter, what's wrong with
> with(d,myfunc(x,y,z))    ??
>
> I realize this depends on the function be vectorizable, but isn't that
> the point? It could be orders of magnitude faster than looping via
> apply.
>
> -- Bert
>
>>    d$value <- apply(d, 1, myfunc2)
>>
>> ?
>>
>> Peter Ehlers
>>
>>>
>>> Thank you very much in advance
>>>
>>>
>>>
>>> --
>>> View this message in context:
>>> http://r.789695.n4.nabble.com/Execute-a-function-tp4637182.html
>>> Sent from the R help mailing list archive at Nabble.com.
>>>
>>> ______________________________________________
>>> [hidden email] 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.
>>>
>>
>> ______________________________________________
>> [hidden email] 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.
>
>
>

______________________________________________
[hidden email] 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.