String 如何从带标签的数字变量(Stata)中生成字符串变量?

String 如何从带标签的数字变量(Stata)中生成字符串变量?,string,label,stata,String,Label,Stata,我有一个变量state,它取11到99之间的整数值。它有标签 如何创建一个字符串变量stateString,该变量将具有字符串值,而不包含所有这些数值 genstatestring=tostring(state) 这没用 tostring不是一个函数;这是一个命令,在斯塔塔,这两者是截然不同的。只有猜测才能得出您尝试过的语法 tostring state, gen(stateString) 应该有用。但是tostring只是函数string()和 gen stateString = str

我有一个变量
state
,它取11到99之间的整数值。它有标签

如何创建一个字符串变量
stateString
,该变量将具有字符串值,而不包含所有这些数值

genstatestring=tostring(state)


这没用

tostring
不是一个函数;这是一个命令,在斯塔塔,这两者是截然不同的。只有猜测才能得出您尝试过的语法

tostring state, gen(stateString) 
应该有用。但是
tostring
只是函数
string()

gen  stateString = string(state) 
还应该用于获取字符串变量

但是字符串值应该是“11”。。。“99”,这是错误的方法。给定值标签,您可以将此变量设置为数字

如果确实需要字符串变量,则需要
decode
,而不是
tostring

decode state, gen(stateString) 
编辑:语法
tostring()
只有在
tostring()
是函数时才有效,而函数不是。因此,最初的答案解释了OP代码错误的原因,并解释了如何正确执行。我在这篇编辑文章中详细说明了如何使用
解码


编辑2021:函数
string()
仍能正常工作,并像以前一样记录在案,但函数名
strofreal()
现在被突出显示。

您必须安装Roger Newson的命令
sdecode
ssc安装sdecode
),然后它就是:

sdecode state, gen(stateString)
你不需要这样做。如前所述,有更多直接的解决方案仅使用官方代码。