Note that there is no longer a need to specify
variable type to -generate- string variables, although
that does no harm.
This is in essence the same question as one
raised by Ari Friedman on 11 October and can
be attacked directly without any need for reversing.
The length of a string is given by -length()-,
so everything but the last two characters is
substr(x,1,length(x) - 2)
and everything between the second and the
last two characters is one substring with
one character fewer:
substr(x, 2, length(x) - 3)
At some stage every serious Stata user has
to browse the functions sections of the manual
carefully, dry though they are!
Nick
n.j.cox@durham.ac.uk
White, Justin
Try this:
gen str X2 = substr(x,2,.)
gen str x_2 = reverse(X2)
gen str x3 = substr(x_2,2,.)
gen str x_3 = reverse(x3)
drop X2 x_2 x3
X_3 would be the variable you are ultimately interested in.
Then rename
X_3 to whatever you wish.
Ronnie Babigumira
I have a string variable that looks like this
x
161011000AT
161011000CN
1610110012CN
I am interested in what lies between the first and the last two
characters
I could have used
gen str10 = subst(x, 2, 8) but that would not work for the last
observation. How can I simply drop the first character,
and last two charters in x
*
* 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/