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]
st: Re: string comparision
From
"Joseph Coveney" <[email protected]>
To
<[email protected]>
Subject
st: Re: string comparision
Date
Tue, 31 Jul 2012 11:43:56 +0900
Tashi Lama wrote:
Is there a direct way of listing variables matching all of the some of the
strings, similar to sql functions "like" and "rlike" ? Here is my dataset say,
ID Name
1 John Malda
2 Sam Houston
I would like to list Name var matching full or part of the string something like
following
list if Name like "Jo"
I searched for previous posts related to above question and found some of the
string-matching functions/commands like strgroup, reclink and strmatch. I can
picture using strmatch to solve my problem but that wouldn't be direct in the
sense, I will have to use loops and may be create indicator variables to get my
job done. But again, I can only picture at this point. Any folks know any direct
and better options?
--------------------------------------------------------------------------------
Stata's -strmatch()- function does just what you want. It works with wildcard
symbols, just like SQL's LIKE. -strmatch()- is direct, and you don't need to
create indicator variables or use loops. See illustration below.
Stata also has regular expression capabilities, but they're not needed to do
what you show that you want to accomplish.
Joseph Coveney
. drop _all
. input byte ID str244 Name
ID
>
>
> Name
1. 1 "John Malda"
2. 2 "Sam Houston"
3. end
.
. list if strmatch(Name, "*Jo*"), noobs
+-----------------+
| ID Name |
|-----------------|
| 1 John Malda |
+-----------------+
*
* 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/