Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: Need Help Recoding a variable -Dealing with string expression


From   Nick Cox <njcoxstata@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Need Help Recoding a variable -Dealing with string expression
Date   Thu, 21 Jun 2012 08:28:28 +0100

Stata's own -search- command  (recommended in the Statalist FAQ) with
the text -regular expressions- answers your second question. Among
other sources, it points to

FAQ     . . . . . . . . . . . . . . . . . . . . . . . . .  Regular expressions
        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K. S. Turner
        10/05   What are regular expressions and how can I use
                them in Stata?
                http://www.stata.com/support/faqs/data/regex.html

FAQ     . How to extract a portion of a string var. using regular expressions?
        . . . . . . . . . . . . . . . . . .  UCLA Academic Technology Services
        7/08    http://www.ats.ucla.edu/stat/stata/faq/regex.htm

Your first question is less clear to me, but have a look at

FAQ     . . . . . . . . . . . . . . . . . . . . . . .  True and false in Stata
        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  N. J. Cox
        2/03    What is true and false in Stata?
                http://www.stata.com/support/faqs/data/trueorfalse.html

The syntax recommended was based on a short-cut, the fact that

if strpos(strvar, "<")  >  0

and

if strpos(strvar, "<")

_in this kind of problem_ are treated in the same way. The FAQ spells
out why, but in a clause: in any context where Stata needs the answer
to a true or false question, non-zero is treated as true and only zero
is treated as false.

Nick

On Thu, Jun 21, 2012 at 3:29 AM, Michael Stewart
<michaelstewartresearch@gmail.com> wrote:
> Dear Nick,
>
> I have executed the stata command per your suggestions and worked
> exactly as I wanted.
> I became more interested in the string functions and started reading
> up on them in stata pdf manual but got lost .
> Can you please help me understand the logic here
> strpos(strvar,">")--> supposed to return position where > is found and
> if >  is  not found to return a value zero but we are able to combine
> the strpos function with replace and even if >  is found , we are able
> to convert the misisng value to zero .Can you please explain the logic
> here.
>
> Also  would you recommend any good reference for  using / building the
>  regular expressions.
> Thanks a lot Nick for your time
>
> --
> Thank you ,
> Yours Sincerely,
> Mike.
>
>
>
> On Wed, Jun 20, 2012 at 1:47 PM, Nick Cox <njcoxstata@gmail.com> wrote:
>> Same answer, really. Something like
>>
>> destring strvar, gen(numvar) force
>>
>> replace numvar = 3 if strpos(strvar, ">") | strpos(strvar, "<") |
>> regexm(strvar, "[a-z]+")
>>
>> You need to find out about string functions. -help functions-.
>>
>> Nick
>>
>> On Wed, Jun 20, 2012 at 4:52 PM, Michael Stewart
>> <michaelstewartresearch@gmail.com> wrote:
>>> Thank you Nick and Daniel .
>>>
>>> I am sorry that my post want clear enough.
>>>
>>> Once I destring, with a force option, I get some missing values
>>> corresponding to non numeric vaulues.
>>>
>>> I wanted to recode the missing values in the new variable to number  3
>>> if there is an alphabet(could be anything from a to z)  or a symbol (<
>>>  or > ) in the corresponding observation for the original variable
>>> like  "sometimes"  "< two" "<3" ">5 " "<0.5" ">four"  .
>>
>>
>> On Wed, Jun 20, 2012 at 10:00 AM, Nick Cox <njcoxstata@gmail.com> wrote:
>>
>>>> The question is too general to answer fully but one pattern is just
>>>>
>>>> recode x <whatever> if y == "foo"
>>>>
>>>> In addition to exact equality of string values there are many other
>>>> possibilities involving string functions.
>>
>> On Wed, Jun 20, 2012 at 2:49 PM, Michael Stewart
>>
>>>>> I need to recode a variable if another variable has a nonnumeric
>>>>> string observation(could have any non-numeric expression)
>>>>>
>>>>> Eg:       recode x(......)  if y =TSTATA COMMAND  (any  non-numeric
>>>>> string expression)
>>>>>
>>>>> Can you please help me with the command to take into consideraiton
>>>>> "any non-numeric string expression "

*
*   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–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index