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 |
tashi lama <ltashi32@hotmail.com> |

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

Subject |
RE: st: could someone pls explain me this |

Date |
Mon, 30 Apr 2012 19:50:49 +0000 |

Thank you very much Nick.... ---------------------------------------- > Date: Mon, 30 Apr 2012 19:33:12 +0100 > Subject: Re: st: could someone pls explain me this > From: njcoxstata@gmail.com > To: statalist@hsphsun2.harvard.edu > > You need to think of what the problem is to which this code is a solution. > > What is the value of a string variable corresponding to a value of a > numeric variable? You can't say > > summarize <strvar> if <numvar> == # > > as -summarize- doesn't summarize string variables. So, you need to > find out _where_ in the data it is true that > > <numvar>== # > > i.e. use a look-up technique. If a variable contains observation > numbers, then r(min) and r(max) after -summarize- applied to that > variable will also contain observation numbers. > > Nick > > On Mon, Apr 30, 2012 at 7:24 PM, tashi lama <ltashi32@hotmail.com> wrote: > > thank you. I still have some clouds. > > > > 1.Why do we have to summarize the temp var? > > > > 2.Minimum such obs no r(min). Are we looking the minimum obs in the tempvar? Is it 3 in the following example? > > > > > > > > epcom noncom __000001 | > > |------------------------------------------| > > 1. | 18001 Acheres . | > > 2. | 18002 Ainay-Le_Vieil . | > > 3. | 18003 Les Aix -d'Angillion 3 | > > 4. | 18004 Allogny . | > > 5. | 18005 Allouis . | > > > > > > > > > > 3. Could we have said instead of minimum or maximum no, non-missing obs no because there is only one obs in tempvar? > > > > ---------------------------------------- > >> Date: Mon, 30 Apr 2012 18:37:56 +0100 > >> Subject: Re: st: could someone pls explain me this > >> From: njcoxstata@gmail.com > >> To: statalist@hsphsun2.harvard.edu > >> > >> The code > >> > >> tempvar tv1 > >> gene `tv1'=_n if depcom==18003 > >> summ `tv1', meanonly > >> local index=r(min) > >> local mymacro=nomcom[`index'] > >> drop `tv1' > >> > >> is a way of looking up the value of -nomcom- when -depcom- is 18003. > >> The temporary variable contains observation numbers for which -depcom- > >> is 18003. A certain way of finding such an observation if any exist is > >> to find the minimum such observation number. The maximum would do fine > >> as an alternative. The code could be shortened > >> > >> tempvar tv1 > >> gene `tv1'=_n if depcom==18003 > >> summ `tv1', meanonly > >> local mymacro=nomcom[r(min)] > >> drop `tv1' > >> > >> The main point of similar code is to automate value look-up. It's > >> usually a long-winded way to proceed if you are working interactively. > >> > >> Nick > >> > >> On Mon, Apr 30, 2012 at 6:24 PM, tashi lama <ltashi32@hotmail.com> wrote: > >> > >> > I am doing sth similar to what I found in archive titiled "Re: st: save the value of a string variable into a macro". I am not sure if I followed the code although it looks relatively st. forward. > >> > > >> > > >> > > >> > Here is the dataset and goal > >> > > >> > +-----------------------------+ > >> > | depcom nomcom | > >> > |-----------------------------| > >> > 1. | 18001 Acheres | > >> > 2. | 18002 Ainay-le-Vieil | > >> > 3. | 18003 Les Aix-d'Angillon | > >> > 4. | 18004 Allogny | > >> > 5. | 18005 Allouis | > >> > +-----------------------------+ > >> > > >> > Where depcom is an id. I want to save a specific values of the variable "nomcom" into a variable, for example, I want to obtain : > >> > . di "`mymacro'" > >> > Archeres > >> > > >> > > >> > > >> > The code is > >> > > >> > > >> > > >> > tempvar tv1 > >> > gene `tv1'=_n if depcom==18003 > >> > summ `tv1', meanonly > >> > local index=r(min) > >> > local mymacro=nomcom[`index'] > >> > drop `tv1' > >> > > >> > > >> > > >> > > >> > I follow line 1 and 2. I am not sure why we need line 3. Line 4 established a macro which is used in line 5. But, I don't follow why the macro takes r(min) as expression. I would think the macro `index' should capture the value(the only value in fact) in tv1. > > * > * 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/

**References**:**st: could someone pls explain me this***From:*tashi lama <ltashi32@hotmail.com>

**Re: st: could someone pls explain me this***From:*Nick Cox <njcoxstata@gmail.com>

**RE: st: could someone pls explain me this***From:*tashi lama <ltashi32@hotmail.com>

**Re: st: could someone pls explain me this***From:*Nick Cox <njcoxstata@gmail.com>

- Prev by Date:
**Re: st: could someone pls explain me this** - Next by Date:
**st: using macro** - Previous by thread:
**Re: st: could someone pls explain me this** - Next by thread:
**st: using macro** - Index(es):