Generate string variable (lazy way) -----------------------------------
^strgen^ newstringvar ^=^ stringexp [^if^ exp] [^in^ range]
Description -----------
^strgen^ generates a new string variable as the result of stringexp, an expression with a string result. The string type, whether ^str1^ ... ^str80^, is determined automatically as the smallest string type which will hold the data.
Remarks -------
Unless, exceptionally, ^type^ is set to one of ^str1^ ... ^str80^, which is not to be recommended, the generation of a string variable requires the specification of a string type, as in
^generate str^# newstringvar ^=^ stringexp
This can raise various small or large problems, as the user needs to determine # in advance, and a # which is too small or too large can truncate data or unnecessarily use valuable memory.
A two-step alternative is
^generate str1^ newstringvar ^= ""^ ^replace^ newstringvar ^=^ stringexp
and another, if space is plentiful, is
^generate str80^ newstringvar ^=^ stringexp ^compress^ newstringvar
-- as Stata will itself work out a suitable # in each case.
^strgen^ automates the first of these two methods.
Examples --------
. ^strgen srep78 = string(rep78)^ . ^strgen frep78 = string(rep78) if foreign^ . ^strgen nospaces = subinstr(myvar," ", "_", .)^
Author ------
Nicholas J. Cox, University of Durham, U.K. n.j.cox@@durham.ac.uk
Also see --------
On-line: help for @generate@ Manual: ^[R] generate^