5

我有一个变量state,它采用从 11 到 99 的整数值。它被标记。

如何创建一个字符串变量stateString,该变量具有没有所有这些数值的字符串值?

gen stateString = tostring(state)

不成功。

4

2 回答 2

7

tostring不是函数;这是一个命令,而在 Stata 中,两者是截然不同的。只有猜测会导致您尝试的语法。

tostring state, gen(stateString) 

应该管用。但这tostring只是函数的包装器string()

gen  stateString = string(state) 

也应该可以获取字符串变量。

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

如果你真的想要一个字符串变量,你需要decode,而不是tostring.

decode state, gen(stateString) 

编辑:语法tostring()只有在tostring()是一个函数时才有效,但不是。因此,原始答案解释了为什么 OP 的代码是错误的,并解释了如何正确执行。我在此编辑中详细说明了如何使用decode.

编辑 2021:该功能string()仍然有效,并像以前一样记录在案,但strofreal()现在突出显示了功能名称。

于 2013-06-23T10:18:27.003 回答
1

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

sdecode state, gen(stateString)
于 2014-09-25T23:36:22.600 回答