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

From |
"Fabrice" <fcaspam@yahoo.fr> |

To |
<statalist@hsphsun2.harvard.edu> |

Subject |
st: RE: Should be simple yet ... how to write a function? |

Date |
Wed, 18 Feb 2009 18:50:50 +0100 |

Thanks to all of you for your thoughtful answers! I've learned much, including--but not restricted to--... a) that most experts agree that Stata indeed does not implement the most basic form of programming (function passing direct return values) b) that Stata has a wonderful programming language with Mata (I had read about it, but it's impressive what is a priori possible there) c) that Stata has an object oriented engine (hidden behind the class structure), whoa! What is still unclear to me is the following: Maarten suggested that I could make function returning variables, like many egen function. And the trick is simply to look into the .ado code of those _gxxx.ado functions. After looking briefly at such code, I'm still not clear about the details, but it sounds like a good idea. Then I noticed that some simple scalar function (such as acos()) appear also there in the library provided by Stata, and wondered: hey, why not just imitate what's there?! Currently, the only example I can find are Mata code. So my remaining question is therefore: I know I can write . scalar y = sin(x) So .... where is the code for such "sin" function. I tried ". which sin", and it responds that it is not a built in or ado-file. So where is it defined? Maybe that is all implemented in C code in the kernel, and then, I'm toast. But it does not hurt to ask... Best to all Fabrice Cavarretta ---------------------------------------------- Assistant Professor of Management and Entrepreneurship ESSEC Business School -----Original Message----- From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Martin Weiss Sent: mercredi 18 février 2009 11:10 To: statalist@hsphsun2.harvard.edu Subject: st: AW: Should be simple yet ... how to write a function? <> See http://www.stata-journal.com/article.html?article=pr0007 When you -generate- a variable, you implicitly apply a "function" to all observations. If you want to write your own function, -egen- is a good starting point, and this is explored in the article cited above... HTH Martin -----Ursprüngliche Nachricht----- Von: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] Im Auftrag von Fabrice Gesendet: Mittwoch, 18. Februar 2009 11:04 An: statalist@hsphsun2.harvard.edu Betreff: st: Should be simple yet ... how to write a function? Im a pretty advanced Stata user, but have a simple question I cant figure out: how does one write a *function*, i.e. a program that returns a value, and that can be called like local y = fct(x), where x and y are numbers or strings. This seems it should be available somewhere in the language, yet I?ve searched in a lot of programming explanations about Stata and never found a way to write that. FYI, I program extensively in stata, know about r-type vs. e-type program, and know how to store results to return to main program. I just don?t know how to write the most simple function form. Any idea? Fabrice * * 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/ * * 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/ * * 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**:**st: RE: RE: Should be simple yet ... how to write a function?***From:*"Nick Cox" <n.j.cox@durham.ac.uk>

**Re: st: RE: Should be simple yet ... how to write a function?***From:*Maarten buis <maartenbuis@yahoo.co.uk>

**References**:**st: Should be simple yet ... how to write a function?***From:*"Fabrice" <fcaspam@yahoo.fr>

**st: AW: Should be simple yet ... how to write a function?***From:*"Martin Weiss" <martin.weiss1@gmx.de>

- Prev by Date:
**RE: st: multivariate normal regression with ml, linear form** - Next by Date:
**Re: st: RE: Should be simple yet ... how to write a function?** - Previous by thread:
**st: AW: Should be simple yet ... how to write a function?** - Next by thread:
**Re: st: RE: Should be simple yet ... how to write a function?** - Index(es):

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