我正在尝试在下面的照片中转换 Stata (AP1) 中的一列,以便条目是字符串类型。目前,条目显示为字符(例如“cultivateur”),但显示为 int
类型。
我使用以下代码尝试将它们更改为字符串。
label values AP1 .
tostring AP1, replace
AP1 was long now str5
虽然 AP1
列变成了字符串类型,但所有字符现在都变成了整数,这不是我根据观察对数据进行子集化所需要的。
有谁知道我可以将此列切换为字符串类型而不将字符变成整数?
答案 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
作为官方命令的时间早于).