[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

From |
David Kantor <kantor.d@att.net> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: can one program a function in Stata? |

Date |
Wed, 22 Apr 2009 12:45:05 -0400 |

At 12:21 PM 4/22/2009, Jacob wrote:

I am about to order Kit Baum's Introduction to Stata Programming. But I'm curious whether his book will answer the following question.Stata has what I would call plain old functions, of which sqrt() isan example:. di sqrt(3.1415926535) 1.7724539 . sysuse auto, clear (1978 Automobile Data) . gen sqrtTurn=sqrt(turn) But suppose I want to define a function that's not found under -help functions-. The following approach (with a hypothetical nonstandard function) seems clumsy: capture program drop myownfunction program define myownfunction, rclass if `1' > 3 { return scalar myanswer= (sqrt(`1') + 5)^(2/3) } else { return scalar myanswer= (sqrt(`1') + 9)^(2/3) } end myownfunction 3.1415926535 di r(myanswer) Besides the awkward business of having to first call the function, then refer to - r(myanswer) - , this program only works for a single number (a scalar in the mathematical not Stata sense). If I want to apply it to an entire column of numbers (a Stata numeric variable), I'd have to write a different function, then always remember whether to call the scalar or the vector (variable) version. On the other hand, we can use sqrt() directly for either purpose. Thus, is there a way to define -myownfunction()- so that one can call it just as one calls sqrt()? Does one do this with -mata-, or ...? Would Kit Baum's book talk about this?

viewsource egen.ado plus, look at one of the Stata-given programs, such as max (_gmax): viesource _gmax.ado HTH --David * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

**Follow-Ups**:**Re: st: can one program a function in Stata?***From:*"Martin Weiss" <martin.weiss1@gmx.de>

**References**:**st: can one program a function in Stata?***From:*Jacob Wegelin <jacob.wegelin@gmail.com>

- Prev by Date:
**AW: st: How to change value based on string variable?** - Next by Date:
**Re: st: mim: xtmelogit & mim: xtmixed** - Previous by thread:
**st: AW: can one program a function in Stata?** - Next by thread:
**Re: st: can one program a function in Stata?** - Index(es):

© Copyright 1996–2015 StataCorp LP | Terms of use | Privacy | Contact us | What's new | Site index |