Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: RE: Re: generating a string from floats


From   "Nick Cox" <n.j.cox@durham.ac.uk>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: RE: Re: generating a string from floats
Date   Tue, 29 Oct 2002 09:00:49 -0000

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 
n.j.cox@durham.ac.uk 

*
*   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/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index