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 |
Nick Cox <n.j.cox@durham.ac.uk> |

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

Subject |
RE: st: RE: assigning same number to slightly different string var. |

Date |
Tue, 1 Nov 2011 13:26:34 +0000 |

If you had specified use of Stata 8, I would (probably) have remembered that -index()- is the function in your case. More importantly, the art of using the function is clearly to specify a substring to catch all the possibilities you want and none of the possibilities you don't want. Nothing rules out a compound condition with if index(myvar, "FTSE") & index(myvar, "UK") or even if index(myvar, "FTSE") & !index(myvar, "UK") Nick n.j.cox@durham.ac.uk Philip Hantschk Thanks for the quick answer. i work with stata 8, so i had to use index( instead of strpos(. It works fine, but i have a little problem left. For example an index is called FTSE Europe and another FTSE Europe ex UK. These are 2 different Indices and I want to assign different numbers, but when i write replace newvar = 1 if index(myvar, "FTSE Europe") it changes both. As I write this message I think I have a solution. I first change all FTSE to 1, then FTSE Europe to 1, then FTSE Europe ex UK to 2, then FTSE Europe USD to 3 etc. From short to long. What do you think of that idea? or is there an easier way? Philip Hantschk > Von: Nick Cox <n.j.cox@durham.ac.uk> > You want a new variable, which could be constructed like this > > gen newvar = . > replace newvar = 1 if strpos(myvar, "500") > replace newvar = 2 if strpos(myvar, "Dax") > ... > > -if strpos(,)- is equivalent to -if strpos(,) > 0-. > > tab myvar if missing(newvar) > > will tell you what you missed. > > You will also want to define value labels and assign them. > > Nick > n.j.cox@durham.ac.uk > > Philip Hantschk > > i have a set of data containing names of indices, like S&P 500, Dax 30 > etc. I want to assign numbers to the indices, so that S&P 500=1, Dax 30=2 etc. > The problem is, that the in the observations, S&P 500 has different ways > of writing, e.g. Standard and Poor's 500, S&P 500, S&P 500 Index, etc. > > My question is, is there a way to assign numbers automatically, like tell > Stata to give every observation that contains "500" the "1". > * * 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: assigning same number to slightly different string var.***From:*"Philip Hantschk" <hantph96@gmx.at>

**st: RE: assigning same number to slightly different string var.***From:*Nick Cox <n.j.cox@durham.ac.uk>

**Re: st: RE: assigning same number to slightly different string var.***From:*"Philip Hantschk" <hantph96@gmx.at>

- Prev by Date:
**st: bootstrap reject()** - Next by Date:
**st: RE: bootstrap reject()** - Previous by thread:
**Re: st: RE: assigning same number to slightly different string var.** - Next by thread:
**st: bootstrap reject()** - Index(es):