Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down at the end of May, and its replacement, statalist.org is already up and running.


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

st: replace part of string variable


From   raoul reulen <r.c.reulen@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   st: replace part of string variable
Date   Wed, 8 Jun 2011 19:34:44 +0100

Hello

I want to replace a specific character (let's say: **) of a string
variable, but only if it is in a certain position. I have a string
variable for date of birth (dob) and some of the month values and some
of the day values are unknown and have been substituted by an
asterisk, like:

dob (day, month, year)
"01**1978"
"04**1987"
"**011977"
"03**1978"

Now, I want to replace the first two characters with the value "30" if
the first two values are an asterisk, the 3th and 4th with "06" if
they are an asterisk etc.  Now, I can obviously split the variable
into 3 components like below, but I am sure there is an easier way. Is
this a job for "regexm"? I looked into "subinstr" as well, and
although I can replace the asterisks, it seems to be independent of
the position/location the asterisks are in.

*---example---*
.gen str4 dobyear = substr(dob, 5, 4)
.gen str2  dobmth = substr(dob,3,2)
.gen str2 dobday = substr(dob,1,2)

.replace dobmth = "06" if dobmth=="**"
.replace dobday = "30" if dobday=="**"
*-----end example------*

Any help appreciated!

Thanks

Raoul
*
*   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/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index