tostring 将字符值转换为整数

时间:2021-07-12 17:35:35

标签: string integer stata tostring

我正在尝试在下面的照片中转换 Stata (AP1) 中的一列,以便条目是字符串类型。目前,条目显示为字符(例如“cultivateur”),但显示为 int 类型。 enter image description here

我使用以下代码尝试将它们更改为字符串。


label values AP1 .

tostring AP1, replace
AP1 was long now str5


虽然 AP1 列变成了字符串类型,但所有字符现在都变成了整数,这不是我根据观察对数据进行子集化所需要的。 enter image description here

有谁知道我可以将此列切换为字符串类型而不将字符变成整数?

1 个答案:

答案 0 :(得分:3)

您的图像几乎无法读取——在手机或笔记本电脑上——但使用超大显示器的任何人都可能读取。请参阅 Stata 标签 wiki 以获取有关呈现可重现数据示例的指南。

可以通过考虑可重复地解释正在发生的事情

. sysuse auto, clear
(1978 automobile data)

. tab foreign

 Car origin |      Freq.     Percent        Cum.
------------+-----------------------------------
   Domestic |         52       70.27       70.27
    Foreign |         22       29.73      100.00
------------+-----------------------------------
      Total |         74      100.00

. tab foreign, nolabel

 Car origin |      Freq.     Percent        Cum.
------------+-----------------------------------
          0 |         52       70.27       70.27
          1 |         22       29.73      100.00
------------+-----------------------------------
      Total |         74      100.00

. tostring foreign, gen(str_foreign)
str_foreign generated as str1

. tab str_foreign

 Car origin |      Freq.     Percent        Cum.
------------+-----------------------------------
          0 |         52       70.27       70.27
          1 |         22       29.73      100.00
------------+-----------------------------------
      Total |         74      100.00

. d *foreign

Variable      Storage   Display    Value
    name         type    format    label      Variable label
------------------------------------------------------------------------------------------------------------------
foreign         byte    %8.0g      origin     Car origin
str_foreign     str1    %9s                   Car origin

foreign 就像你的有问题的变量是一个带有值标签的数字变量。 (术语“列”在 Stata 中对于数据集中的变量不是标准的。)通过 tostring 将其推入,您将得到一个包含整数字符的字符串变量。 Stata 按照您的要求做了。

要获取包含值标签文本的字符串变量,您需要应用 decode 命令,该命令正是为此目的而编写的(顺便说一句,tostring 作为官方命令的时间早于).

相关问题