[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: st: new string variable which has the formatted value of a variable

From   "Nick Cox" <>
To   <>
Subject   RE: st: new string variable which has the formatted value of a variable
Date   Wed, 7 Jan 2009 16:14:23 -0000

-tostring- is objecting because -real("28feb2008")- does not yield

That objection is irrelevant for your purposes, so you should just add
the -force- option. 

Do please notice that I didn't recommend using -tostring-; I recommended
using -string()- directly. 

I don't follow your argument about HTML but I will not comment further
on that. It is really is impossible to discuss what you are doing when
the description of your code is merely "it". 


Ashim Kapoor

hi Nick,

Thank you for your email.

I need it to be a string because I want it to be output to HTML. If
the orginal variables is 17590 and display something like " Sep 6
1990" it is useless as when i try writing that variable to an HTML
code it will write 17590 and not Sep 6 1990 which is what I want.

gen k=17590
. format %td k

. l

     |         k |
  1. | 28feb2008 |
  2. | 28feb2008 |
  3. | 28feb2008 |
  4. | 28feb2008 |
  5. | 28feb2008 |

. tostring(k) ,format(%td) gen(j)
k cannot be converted reversibly; no generate

This fails. Am I doing something wrong?

Thank you,
On Wed, Jan 7, 2009 at 9:17 PM, Nick Cox <> wrote:
> Using -tostring- would be convenient for several variables, and it
> certainly supports a -format()- option. (I am not clear why Jeph
> uncertain on that.)
> But a lower-level route appears closer to what Ashim wants. That uses
> the two-argument flavour of -string(,)-.
> To detect what format a variable has you go
> local fmt: format mynumvar
> gen svar = string(mynumvar, "`fmt'")
> Thus no magic is needed, just willingness to read the documentation.
> I don't understand why a string variable is needed here. Once a date
> been displayed in SMCL whether it came from a numeric variable or a
> string variable is immaterial, but that is a separate issue.
> Nick
> Jeph Herrin
> I think -tostring- will work with the -format()- option.
> Or, if you want to call mata you can use -sprintf()-.
> Ashim Kapoor wrote:
>> This is great. Will do part of what I what . I still need the magic
>> command to do magic on dates.
>> On Wed, Jan 7, 2009 at 5:21 PM, Neil Shephard <>
> wrote:
>>> Not sure about dates, but for your second example you can do the
> following....
>>> gen str magicj = string(round(j, .01))

*   For searches and help try:

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