Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.


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

Re: st: Passing value of an observation to a user-written function fails


From   Philip Jones <pjones.statalist@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Passing value of an observation to a user-written function fails
Date   Sun, 27 May 2012 13:18:45 -0400

Thank you Daniel - pre-evaluating the arguments works! Your help is
much appreciated.

Phil

On Sun, May 27, 2012 at 12:48 PM, daniel klein
<klein.daniel.81@googlemail.com> wrote:
> Phil,
>
> note that what you have is not a function, but a (r-class) program.
> You may not write your own functions in Stata, for that use Mata.
>
> I also do not see the need to loop over observations here, since Stata
> oparates row-wise per default.
>
> forv j = 1/`= _N' {
>    replace <oldvar> = <somevar[`i']> <operator> <anothervar[`i']> in `i'
> }
>
> is exactly the same as
>
> replace <oldvar> = <somevar> <operator> <anothervar>
>
> The only difference is, that the second line of code will execute much faster.
>
> If you decide you really need the (very slow) loop, evaluating the
> arguments before passing them to your program might solve your
> problem.
>
> Instead of
>
> atc start_time[`i'] end_time[`i']
>
> code
>
> atc `= start_time[`i']' `= end_time[`i']'
>
> Best
> Daniel
>
> --
> I have a user-written function "atc.ado" which accepts two integers as
> arguments [...] The return value of my function is in r(units).
>
> [...]The code
> needs to execute independently for each observation, as the times are
> different for each observation. [...]
>
> Can anyone help me? I'm sure there is something simple I can do to
> solve this problem, but I'm at a loss.
>
> Many thanks!
>
> Phil
> *
> *   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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index