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: RE: assigning same number to slightly different string var.
From
Nick Cox <[email protected]>
To
"'[email protected]'" <[email protected]>
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
[email protected]
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 <[email protected]>
> 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
> [email protected]
>
> 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/