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]

From |
"Tomas Lind" <tomas.lind@ki.se> |

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

Subject |
st: SV: RE: scalar and calculations |

Date |
Fri, 16 Apr 2010 17:07:01 +0200 |

Thanks Nick, This code works (with tempname v2), but it does not work if I specify `v2' in the -return- and -simulate- statements. That makes me a bit confused when you say " Alternatively, and better, tempname v scalar `v' = capture program drop test program test , rclass version 10 syntax [, n(integer 1) ] drop _all set obs `n' gen zz=10 sum zz scalar x = r(mean) tempname v2 return scalar v2 = x^2 * `n' end tempname z simulate z = r(v2) , reps(10) : test , n(100) sum z // OK fungerar /Tomas -----Ursprungligt meddelande----- Från: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] För Nick Cox Skickat: den 16 april 2010 16:17 Till: statalist@hsphsun2.harvard.edu Ämne: st: RE: scalar and calculations You are confusing scalars with their names, which may or may not be temporary. Scalars need not have temporary names. In your case the scalar has a permanent name, v, which you assigned to it. You could use v rather than `v' throughout -- so long as no variable is named, or unambiguously abbreviates to, v. Alternatively, and better, tempname v scalar `v' = Conversely, the `v' notation suggests to Stata that it should find something with the temporary name specified, and in your case there is no such beast. Nick n.j.cox@durham.ac.uk Tomas Lind Scalar can´t do calculations? I am trying to do some simulations. In a simplified version of my code, this works (part of code shown) where n is sample size: scalar v = r(mean) return scalar v2 = (`v'+2) * `n' // No error messages But this does not work: scalar v = r(mean) return scalar v2 = (`v'^2) * `n' // Error, ^2 invalid name This is part of the full code and I get an error for ^2. summarize ln_large scalar v = (r(sd)^2)/2 return scalar mlk = exp(r(mean)) * (1 + ((`n'-1)/`n') + ( ((`n'-1)^3)/(`n'^2*(`n'+1)*2*1 ) ) * (`v'^2/( 2*1) ) + ( ((`n'-1)^5)/(`n'^3*(`n'+1)*(`n'+3)*3*2*1 ) ) * (`v'^3/( 3*2*1) ) + ( ((`n'-1)^7)/(`n'^4*(`n'+1)*(`n'+3)*(`n'+5)*4*3*2*1 ) ) * (`v'^4/(4*3*2*1) ) ) How shall I do to calculate the value for mlk? * * 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: SV: RE: scalar and calculations***From:*"Nick Cox" <n.j.cox@durham.ac.uk>

**References**:**st: scalar and calculations***From:*"Tomas Lind" <tomas.lind@ki.se>

**st: RE: scalar and calculations***From:*"Nick Cox" <n.j.cox@durham.ac.uk>

- Prev by Date:
**Re: st: Stata implementation of difference-in-differences with binary outcomes** - Next by Date:
**Re: st: Stata implementation of difference-in-differences with binary outcomes** - Previous by thread:
**st: AW: RE: scalar and calculations** - Next by thread:
**st: RE: SV: RE: scalar and calculations** - Index(es):