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: Assigning value of a function to a local macro


From   Navid Asgari <navid@nus.edu.sg>
To   "'statalist@hsphsun2.harvard.edu'" <statalist@hsphsun2.harvard.edu>
Subject   RE: st: Assigning value of a function to a local macro
Date   Fri, 11 May 2012 00:06:25 +0800

E.g. we have this data:

     | var1 |
     |------|
  1. | 1995 |
  2. | 1994 |
  3. | 1991 |
  4. | 2001 |
  5. | 2003 |
     |------|
  6. | 2004

If you try to assign the minimum of "var1" to a local macro by using the following command you will get a syntax error:


local minvar=min(var1)
invalid syntax
r(198);

However, if you first create a variable containing the minimum of the "var1", then you can transfer that variable into your local macro:

. egen minivar1=min(var1)

. local minvar=minivar1


. display "the minimum of the varriable 1 is"   `minvar'

the minimum of the varriable 1 is1991




-----Original Message-----
From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Nick Cox
Sent: Thursday, May 10, 2012 11:59 PM
To: 'statalist@hsphsun2.harvard.edu'
Subject: RE: st: Assigning value of a function to a local macro

Phil's solution doesn't involve scalars at all. 

I don't think your side-note is correct. At least, show us an example with real data. 

Nick 
n.j.cox@durham.ac.uk 

Navid Asgari

Thanks Phil! It is a good solution to use scalars.

But, on a side note, min() can work on one variable too

e.g.:

generate minv=min(variable1)

Phil Clayton

min() doesn't do what you think it does. It's more for this kind of thing:
gen newvar=min(var1, var2, var3)
or
gen newvar=min(var1, var1[_n-1])
or
summarize price
display min(r(mean), r(p50))

To get the lowest value of the variable year in the dataset, I would suggest:
summarize year, meanonly
local byear=r(min)

On 10/05/2012, at 7:40 PM, Navid Asgari wrote:
 
> I am trying to assign the value of a function to a local macro, but I get "Invalid Syntax"?
> 
> 
> I type:
> 
> local byear=min(year)
> 
> year is the variable whose minimum has to be saved in the local macro "byear"

*
*   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