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

From |
"sdm1" <[email protected]> |

To |
<[email protected]> |

Subject |
st: RE: RE: RE: RE: RE: Strings and the greater than/less than operators |

Date |
Thu, 14 May 2009 15:15:00 +0100 |

Sorry to trouble you again on this topic. I was thinking about sorting strings in the same way as one would sort numerics so that, for example, a four digit integer is always greater than a three digit integer. Clearly I shouldn't think like this when it comes to strings because "N12 " is less than "N13" and, although 1234 is greater than 124, "1234" is less than "124". When thinking about the sort order of strings, would it be sensible to think of them being left aligned (whereas with integers they're right aligned)? Thanks. Steve -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of sdm1 Sent: 13 May 2009 19:24 To: [email protected] Subject: st: RE: RE: RE: RE: Strings and the greater than/less than operators Nick/Gary, Thanks very much for your help. -asciiplot- provides a particularly useful display of the sort 'order' of characters. Cheers! Steve -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Nick Cox Sent: 13 May 2009 18:14 To: [email protected] Subject: st: RE: RE: RE: Strings and the greater than/less than operators I wrote -char()-, not -char-. The () signal a function, -char()-. For example, . di char(65) A . di char(97) a Referring to -char()- is more precise than referring to (say) ASCII order, which doesn't mean the same thing in absolutely all circumstances. Stata doesn't offer an inverse to -char()-, but -asciiplot- from SSC gives you a graphical display of the characters on your system. In any case, typing e.g. di ("a" > "A") gives you 1 for true and 0 for false. Incidentally, these data look like first parts of UK postcodes. Right or wrong, you might use -trim()- to lose the trailing spaces now in order not to be bitten again. Nick [email protected] sdm1 Noooooooooooo! Thanks Nick...and, of course, you're dead right. The giveaway, I realise now, is the alignment of the values of code under the heading 'code' in the tabulation. I think that the last character aligns vertically with the 'e' of 'code'. The only bit I don't understand is: "The order is that of -char()-". It sounds to me as if char is user defined. This is from the help for char: The dataset itself and each variable within the dataset have associated with them a set of characteristics. Characteristics are named and referred to as varname[charname], where varname is the name of a variable or _dta. The characteristics contain text. Characteristics are stored with the dataset in the Stata-format .dta dataset, so they are recalled whenever the dataset is loaded. If characteristics for a variable are not defined by the user, what's the default order? Is there a list somewhere which will tell me the order in which Stata sorts characters e.g. alphabetric, numeric, spaces, etc. Or am I misinterpreting here? Once again, thanks for your help. Nick Cox General question: Absolutely. The order is that of -char()-. Specific question: "N05 " > "N05". You have trailing spaces. They are characters too. Nick [email protected] Steve Can the greater than (>) and less than (<) operators be applied to strings? If the answer is 'yes' (as I thought), why is "N05" included in the output for the following command? . tab code admimeth if (admimeth==31 | admimeth==32) & (code>"N05" & code<"N13") | admimeth code | 31 32 | Total -----------+----------------------+---------- N05 | 103 163 | 266 N06 | 23,858 132 | 23,990 N07 | 364,687 2,653 | 367,340 N08 | 8,079 18 | 8,097 N09 | 70,953 132 | 71,085 N10 | 24,606 88 | 24,694 N11 | 123,635 256 | 123,891 N12 | 546,148 21,998 | 568,146 -----------+----------------------+---------- Total | 1,162,069 25,440 | 1,187,509 * * 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/ * * 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**:

**References**:**st: Strings and the greater than/less than operators***From:*"sdm1" <[email protected]>

**st: RE: Strings and the greater than/less than operators***From:*"Nick Cox" <[email protected]>

**st: RE: RE: Strings and the greater than/less than operators***From:*"sdm1" <[email protected]>

**st: RE: RE: RE: Strings and the greater than/less than operators***From:*"Nick Cox" <[email protected]>

**st: RE: RE: RE: RE: Strings and the greater than/less than operators***From:*"sdm1" <[email protected]>

- Prev by Date:
**Re: st: RE: Re: Class programming in stata.** - Next by Date:
**st: RE: RE: RE: RE: RE: RE: Strings and the greater than/less than operators** - Previous by thread:
**st: RE: RE: RE: RE: Strings and the greater than/less than operators** - Next by thread:
**st: RE: RE: RE: RE: RE: RE: Strings and the greater than/less than operators** - Index(es):

© Copyright 1996–2024 StataCorp LLC | Terms of use | Privacy | Contact us | What's new | Site index |