Kompal Sinha wrote:
> I have 5 variables(floats) in following format: (the
> first row looks like this):
> x y z t q
> 123456 78965 12345 45678 56
>
> I want to make a new Identifier variable (preferably
> string) which just puts
> the five variables side by side like:
> 12345678965123454567856
>
> I tried gen str23 caseid = x+y+z+t+q but it gives the
> error type mismatch.
> I also tried to convert floats to strings using
> stattransfer but it didn't
> work I am getting blank columns. I can't do it
> mathematically as the number
> created will be more than sixteen digits and won't solve
> my purpose.
Zhiqiang Wang
> Use -string- function:
> . gen str23 caseid=string(x) +string(y) + string(z) +
> string(t) +string(q)
Another solution is
. egen caseid = concat(x y x t q)
It is important to realise why Kompal
got the error message reported. First,
the expression
x + y + z + t + q
can only be interpreted as a numeric
expression given that these variables
are numeric and "+" means addition
in that context. Only when you
force Stata to deal with the
string equivalents will Stata
treat "+" as meaning concatenation.
-egen, concat()- bundles into
one command concatenation when
all you need is to convert any
numerics via string. For the
details, see [R] egen.
Nick
[email protected]
*
* 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/