You are correct about -split-. As the original author of -split- I can comment.
It was designed specifically to cope with strings containing one or more parse strings, typically not necessarily single characters such as spaces or commas.
I thought quite a bit about extending it to your kind of problem, but could see no easy way to do that (a) did not complicate the syntax mightily and (b) was an improvement on direct use of -substr()-.
-substr()- is, and has long been, the method of choice for your kind of problem.
forval i = 1/4 {
gen sitc_`i' = substr(sitc, `i', 1)
}
is a solution to your problem, modulo your exact variable names. Thus it isn't very tricky at all.
Nick
[email protected]
Ben Carpenter
I have got a problem splitting one string variable into four new stringvariables each containing a part i.e. 1digit
of the former 4digit string variable.
My strings look like "103A" or "009X" (without the "") i.e. I have got 4 digit codes which contain numbers and
letters.
I want to generate four new variables each consisting of one digit of the former 4digit-string variable.
An Example:
sitc(variable name of the 4digit string var):
103A
09XX
After the split the data should look like:
sitc_1st_digit sitc_2nd_digit sitc_3rd_digit sitc_4th_digit
1 0 3 A
0 9 X X
As far as I know, the split command needs characters as parse_strings to know when to "cut" the string. But I don
´t have any parse strings within my 4digit string variable. How can I cope with that? Is there another command(or
combination of commands) apart from "split" which can deal with the problem?
I would very much appreciate help with this tricky problem.
*
* 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/