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]
st: replace part of string variable
From
raoul reulen <[email protected]>
To
[email protected]
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/