[R] select one function from two of them in another function

2009-08-27 Thread SH.Chou
Hi all,  I have two functions called test1() and test2(). Now how do I
select one of them in test3()??

Say
  test3-function(func=test1){
if (func==test1){
   now.func-test1()
   }
   else now.func-test2()
 }

I know this function I wrote does not right. Do anyone can tell me how to do
that for real?

Thanks a million

S.H.

-- 
=
Shih-Hsiung, Chou
Department of Industrial Manufacturing
and Systems Engineering
Kansas State University



-- 
=
Shih-Hsiung, Chou
Department of Industrial Manufacturing
and Systems Engineering
Kansas State University

[[alternative HTML version deleted]]

__
R-help@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.


Re: [R] select one function from two of them in another function

2009-08-27 Thread jim holtman
Is this what you want -- this returns a function that you can then call:

 test1 - function() 1
 test2 - function() 2
 test3 - function(func='test1'){  # return the function to call
+ if (func == 'test1') return(test1)
+ return(test2)
+ }

 # test it
 test3()()  # default -- notice the second set of parens
[1] 1

 test3('test1')()
[1] 1

 test3('test2')()
[1] 2





On Thu, Aug 27, 2009 at 4:41 PM, SH.Choucls3...@gmail.com wrote:
 Hi all,      I have two functions called test1() and test2(). Now how do I
 select one of them in test3()??

 Say
  test3-function(func=test1){
        if (func==test1){
               now.func-test1()
       }
       else now.func-test2()
  }

 I know this function I wrote does not right. Do anyone can tell me how to do
 that for real?

 Thanks a million

 S.H.

 --
 =
 Shih-Hsiung, Chou
 Department of Industrial Manufacturing
 and Systems Engineering
 Kansas State University



 --
 =
 Shih-Hsiung, Chou
 Department of Industrial Manufacturing
 and Systems Engineering
 Kansas State University

        [[alternative HTML version deleted]]

 __
 R-help@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.




-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem that you are trying to solve?

__
R-help@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.


Re: [R] select one function from two of them in another function

2009-08-27 Thread Bert Gunter
While correct, the solution below is unnecessarily complicated. Functions
can be passed around and used as arguments just like any other objects.
Hence (using Jim's example):

 test3 - function(func)func
 test3(test1)()
[1] 1
 test3(test2)()
[1] 2

Of course. arguments can be entered in the parentheses as usual:

 test3(function(x)x^2) (5)
[1] 25


Bert Gunter
Genentech Nonclinical Biostatisics

-Original Message-
From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On
Behalf Of jim holtman
Sent: Thursday, August 27, 2009 1:58 PM
To: SH.Chou
Cc: r-help@r-project.org
Subject: Re: [R] select one function from two of them in another function

Is this what you want -- this returns a function that you can then call:

 test1 - function() 1
test2 - function() 2
 test3 - function(func='test1'){  # return the function to call
+ if (func == 'test1') return(test1)
+ return(test2)
+ }

 # test it
 test3()()  # default -- notice the second set of parens
[1] 1

 test3('test1')()
[1] 1

 test3('test2')()
[1] 2





On Thu, Aug 27, 2009 at 4:41 PM, SH.Choucls3...@gmail.com wrote:
 Hi all,      I have two functions called test1() and test2(). Now how do I
 select one of them in test3()??

 Say
  test3-function(func=test1){
        if (func==test1){
               now.func-test1()
       }
       else now.func-test2()
  }

 I know this function I wrote does not right. Do anyone can tell me how to
do
 that for real?

 Thanks a million

 S.H.

 --
 =
 Shih-Hsiung, Chou
 Department of Industrial Manufacturing
 and Systems Engineering
 Kansas State University



 --
 =
 Shih-Hsiung, Chou
 Department of Industrial Manufacturing
 and Systems Engineering
 Kansas State University

        [[alternative HTML version deleted]]

 __
 R-help@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.




-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem that you are trying to solve?

__
R-help@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.

__
R-help@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.