【发布时间】:2013-06-23 08:03:13
【问题描述】:
我有一个变量state,它采用从 11 到 99 的整数值。它被标记了。
如何创建一个字符串变量stateString,它的字符串值没有所有这些数值?
gen stateString = tostring(state)
不成功。
【问题讨论】:
我有一个变量state,它采用从 11 到 99 的整数值。它被标记了。
如何创建一个字符串变量stateString,它的字符串值没有所有这些数值?
gen stateString = tostring(state)
不成功。
【问题讨论】:
tostring 不是函数;这是一个命令,而在 Stata 中,两者是截然不同的。只有猜测会导致您尝试的语法。
tostring state, gen(stateString)
应该可以。但是tostring 只是函数string() 的包装器和
gen stateString = string(state)
应该也可以获取字符串变量。
但字符串值将是“11”,...“99”,这是错误的方法。给定值标签,您可以将此变量设为数字。
如果你真的想要一个字符串变量,你需要decode,而不是tostring。
decode state, gen(stateString)
编辑:语法tostring() 仅在tostring() 是一个函数时才有效,而这不是。因此,原始答案解释了为什么 OP 的代码是错误的,并解释了如何正确地做到这一点。我在此编辑中详细说明了如何使用decode。
EDIT 2021:函数 string() 仍然有效,并且像以前一样记录在案,但函数名称 strofreal() 现在突出显示。
【讨论】:
你必须安装 Roger Newson 的命令sdecode (ssc install sdecode) 然后就可以了:
sdecode state, gen(stateString)
【讨论】: