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]

From |
Nick Cox <njcoxstata@gmail.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: identifying how many digits string var has |

Date |
Sun, 3 Apr 2011 08:28:46 +0100 |

Joerg Luedicke gave you a solution with -length()-. -strlen()- and -length()- are just different names for the same function. What you did wrong was that ... if strlen(`x') is to be thought of as a contraction for ... if strlen(`x') > 0 which is true for all your tests. So, the last test you made overwrites the others. As Joerg said, just using -length()- or -strlen()- to count the characters is what you want. Nick On Sun, Apr 3, 2011 at 1:38 AM, Daniel Marcelino <dmsilva.br@gmail.com> wrote: > Is there a way to identify how many digits a string var have? In the > following example I have 18 , 14, and "missing" digits (counting "/". > "-" and "."). So, I want to identify in var2 how many digits per line > var1 has. > > gen str20 var1 = "" > input > "12.205.291/0001-33" > "12.176.958/0001-17" > "589.275.222-49" > "409.011.140-49" > "12.147.825/0001-12" > "010.433.392-80" > "07.752.894/0001-15" > "." > end > > > I tried this loop, but it just returned me value "3" for all obs. What is wrong? > > foreach x of varlist var1 { > generate byte var2 = 1 if strlen(`x') > replace var2 = 2 if strlen(`x') > replace var2 = 3 if strlen(`x') > } * * 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/

**Follow-Ups**:**Re: st: identifying how many digits string var has***From:*Daniel Marcelino <dmsilva.br@gmail.com>

**References**:**st: identifying how many digits string var has***From:*Daniel Marcelino <dmsilva.br@gmail.com>

- Prev by Date:
**Re: st: identifying how many digits string var has** - Next by Date:
**st: Re: Weighted regression** - Previous by thread:
**Re: st: identifying how many digits string var has** - Next by thread:
**Re: st: identifying how many digits string var has** - Index(es):