Bookmark and Share

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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index