[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: parsing a variable positionally

From   Rufus Peabody <>
Subject   Re: st: parsing a variable positionally
Date   Tue, 3 Jun 2008 21:42:41 -0400

Thanks a lot Nick.  The second option worked like a charm!

On Jun 3, 2008, at 5:55 AM, Nick Cox wrote:

Phil is right that -substr()- is the main tool for parsing (string)
variables positionally. -split- is only for situations in which you have
parsing characters.

I once tried to think up a command that that would be a wrapper for
repeated -substr()- and had just as much flexibility and simpler syntax,
but decided that the quest was futile.

But given integer variables say -monthday- and -year-, you have other
methods open to you.

I guess that dates like 15 October and 31 December are held as 1015 and
1231. (That being so, you do not want to parse after the first

1. Concatenate -monthday- and -year- (using -egen, concat()-, for
example) and apply -date()-.


2. gen dailydate = mdy(floor(monthday/100), mod(monthday, 100), year)

For the last, consider 1231. The monthly part is 12, and the daily part
is 31. The monthly part is thus floor(monthday/100) or int(monthday/ 100)
and the daily part is the remainder mod(monthday, 100).

-----Original Message-----
[] On Behalf Of Philip Ryan
Sent: 03 June 2008 09:35
Subject: Re: st: parsing a variable positionally


the substr() string function might be useful.


At 01:51 PM 3/06/2008, you wrote:

Hey all,

I'm trying to convert a variable into a date.  Ordinarily, this would
be simple using Stata's date() functions, but one of my variables
contains both month and date (i.e. 403 is April 3rd), while another
contains year.  I'm trying to split the month+date variable into two
variables by parsing after the first character.  I tried converting
the variable to a string and using the "split" command, but it does
not allow me to parse positionally; it merely allows me to specify a
parsing character.  Is there a way to parse by position?


*   For searches and help try:
Philip Ryan
Discipline of Public Health

Director, Data Management & Analysis Centre

Associate Dean (IT)
Faculty of Health Sciences

postal address:
Discipline of Public Health
Mail Drop 511
University of Adelaide 5005
South Australia

Level 6, Room 6-18
Bice Building
Royal Adelaide Hospital
North Terrace

tel +61 8 8303 3570
fax +61 8 8223 4075
CRICOS Provider Number 00123M
This email message is intended only for the addressee(s)
and contains information that may be confidential and/or
copyright. If you are not the intended recipient please
notify the sender by reply email and immediately delete
this email. Use, disclosure or reproduction of this email
by anyone other than the intended recipient(s) is strictly
prohibited. No representation is made that this email or
any attachments are free of viruses. Virus scanning is
recommended and is the responsibility of the recipient.

*   For searches and help try:

*   For searches and help try:
*   For searches and help try:

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