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.

# RE: st: string function

 From Grace Jessie To Subject RE: st: string function Date Wed, 24 Aug 2011 11:10:02 +0000

```Nick,
thank you.
Counld you please also tell me the -egen- solution for my questions?

Grace

----------------------------------------
> Date: Wed, 24 Aug 2011 11:59:19 +0100
> Subject: Re: st: string function
> From: njcoxstata@gmail.com
> To: statalist@hsphsun2.harvard.edu
>
> Solutions to all these could be written as -egen- functions or Mata functions.
>
> Here I focus on "official Stata only" solutions.
>
> First question is discussed in
>
> Nicholas J. Cox
> Stata tip 98: Counting substrings within strings
> The Stata Journal 11(2): 318-320
>
> length("abcdaf") - length(subinstr("abcdaf", "a", "", .))
>
> Last two questions
>
> any of "a", "b", "c"
>
> max(strpos("abcdaf","a"), strpos("abcdaf", "b"), strpos("abcdaf", "c")) > 0
>
> all of "a", "b", "c"
>
> min(strpos("abcdaf","a"), strpos("abcdaf", "b"), strpos("abcdaf", "c")) > 0
>
> If you had a long list of candidates, I would do something like this:
>
> gen found = 0
>
> qui foreach letter in s o m e t h i n g {
> replace found = max(found, strpos(strvar, "`letter'") > 0)
> }
>
> where for "max" substitute "min" as needed.
>
> The mapping max <-> any, min <-> all is discussed in
> http://www.stata.com/support/faqs/data/anyall.html
>
> Nick
>
> 2011/8/24 Grace Jessie <gracejessie@hotmail.com>:
>
> > How to count how many times a substring appears in a string?
> > For example,
> > function("abcdaf","a")=2
> >
> > And, how to check if a string variable has certain substrings?
> > With regard to this, I want to ask two functions.
> > For example,
> > function("abcdaf","a","b","c")
> > One of what I want to do is to return 1 if a or b or c is included in "abcdaf", ;
> > the other is to return 1 if a, b and c are included in "abcdaf".
> > Could anyone tell me the correct functions for thoes above?
> *
> * 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/
*
*   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/
```