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: Need Help Recoding a variable -Dealing with string expression
From
Nick Cox <[email protected]>
To
[email protected]
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
<[email protected]> 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 <[email protected]> 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
>> <[email protected]> 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 <[email protected]> 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/