Statalist


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

Re: st: parsing a variable positionally


From   Rufus Peabody <[email protected]>
To   [email protected]
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
character.)

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

Or

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-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Philip Ryan
Sent: 03 June 2008 09:35
To: [email protected]
Subject: Re: st: parsing a variable positionally

<sacrifice>

the substr() string function might be useful.

Phil

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?

Thanks,

Rufus
*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
Philip Ryan
Professor,
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

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

tel +61 8 8303 3570
fax +61 8 8223 4075
http://www.public-health.adelaide.edu.au/
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:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/

*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



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