【问题标题】:How to generate a string variable out of a labeled numeric variable (Stata)?如何从标记的数字变量(Stata)中生成字符串变量?
【发布时间】:2013-06-23 08:03:13
【问题描述】:

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

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

gen stateString = tostring(state)

不成功。

【问题讨论】:

    标签: string label stata


    【解决方案1】:

    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() 现在突出显示。

    【讨论】:

      【解决方案2】:

      你必须安装 Roger Newson 的命令sdecode (ssc install sdecode) 然后就可以了:

      sdecode state, gen(stateString)
      

      【讨论】:

      • 您不需要这样做。如前所述,还有更直接的解决方案,只使用官方代码。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-05
      • 2017-07-22
      相关资源
      最近更新 更多