2.1 变量

统计数据的结构总是以变量为列、以观测值(或称为观测例、记录值)为行的矩阵形式的,如表2-1所示。其中,变量是统计分析语言的基本单位。

表2-1 统计数据的结构

2.1.1 变量命名规则

数据矩阵的每一列起始行为变量名,在数据处理的过程中,变量是由变量名来代表的。Stata的变量命名规则如下。

(1)变量名长度可达32个字符。

(2)变量名由字符组成,包括A~Z、a~z、0~9及下画线“_”,其他符号不可以出现在变量名中。

(3)变量名不能以数字开头,所以2dingjb是不合法的变量名,而dingjb、_dingjb是合法的变量名。

(4)变量名区分字母大小写,如dingjb、Dingjb及DingJB是3个不同的变量名。

(5)由于内部变量由“_”加字母组成,为避免混淆,“_”一般不作为自定义变量的首个字符。

(6)Stata自带的系统变量名称、命令名称、数据存储格式等不可以作为变量名。

(7)建议采用汉语拼音或英文缩写作为变量名,以方便理解与记忆。

2.1.2 变量类型

在Stata中的变量类型有:①数值型变量;②以ASCII为基础的字符型变量;③日期型变量。下面在介绍完这3类变量后,还会简要说明缺失变量的取值问题。

1.数值型变量

数值型变量主要是指由数字、正负号、小数点组成的数据,按其精度和所需存储空间大小不同,又可分为5类,如表2-2所示。

表2-2 数值型变量

其中,double是所有变量中所需存储空间最大的,相应地其精度也最高。在使用时,应根据变量的特征来设置变量类型。在Stata中默认的数值型变量类型为float。

2.字符型变量

字符型变量通常用来说明样本的一些特征信息,可以由字母、特殊符号和数字组成,但这里的数字已经退化成一种符号,不再具有数值特征。

字符型变量一般会被保存为str#格式,其中str表示Stata使用字符型变量的格式,而#表示该变量最多可容纳的字符数,即str后面的数字代表最大字符长度。字符型变量一般用英文状态下的引号""进行标注,引号不被视为字符型变量的一部分。

例如,str6表示最多可容纳6个字符的字符型变量,存储dingjb、ding、djb都是可以的,但是存储dingjbin是不可以的,存储dingjbin需要将str6修改为str8。

3.日期型变量

在Stata中有多种方式用来表示时间的变量,如2008年8月8日可以写为20080808,也可以写为08082008等。在Stata中将1960年1月1日看作分界线,为第0天,之前的天数前都加上一个负号,如1959年12月30日为第-2天。

4.缺失值

在Stata中有一种特殊的变量取值——缺失值。在Stata中有27个数值型代码代表缺失值,即.、.a、.b、.c、.d…….Z,它们依次增大,“.”被认为大于任何数,同时也是所有缺失值中最小的。通常只使用“.”作为缺失值即可。

2.1.3 变量的显示格式

用户可以根据需要设定变量的显示格式,下面介绍数值型变量、字符型变量、日期型变量的显示格式。

1.数值型变量的显示格式

在Stata中数值型变量的基本显示格式有e格式(科学记数法格式)、f格式(固定格式)和g格式(一般格式)3种,如表2-3所示。它们的表达式中均包含由“.”隔开的两个数字w.d。其中,w表示显示的字符数,即宽度;d表示小数点后的位数。g格式中的d比较灵活,它可以自动调整显示格式。

表2-3 数值型变量的显示格式示例

通常,数值型变量的显示格式采用%w.d加上3种基本显示格式的显示符,如%10.4f表示数值型变量的显示宽度为10个字符,小数点后有4位的固定格式。若在f后面附加字母c,则表示采用逗号“,”分隔;若在%后跟“0”,则表示采用前导0的数字显示格式。

2.字符型变量的显示格式

字符型变量的显示格式只有一种,其表达式为%#s。其中,%是一个提示符;#表示显示的字符数,即宽度;s表示字符型变量的显示格式。例如,%12s表示12个字符的字符型变量的显示格式,右对齐。

在Stata中默认的显示格式为右对齐,当%后跟“-”时表示左对齐,如%-12s表示12个字符的字符型变量的显示格式,左对齐。

注意

数值型变量的显示格式也可以使用同样的方法更改为左对齐。

3.日期型变量的显示格式

在Stata中日期型变量的显示格式有多种,如表2-4所示。

表2-4 日期型变量的显示格式

4.显示格式命令format

通过format命令可以规定各类型变量的显示格式,该命令的调用格式为:

其中,%fmt可以是数值型变量、字符型变量或日期型变量的显示格式。

查看变量目前所采用的显示格式的命令调用格式为:

说明

命令中带有下画线“_”的字符表示可采用的缩写形式,因为命令的缩写形式不唯一,因此本书仅在本章中给出了命令缩写下画线,其后章节的命令不再给出。

【例2-1】对数据集census10.dta中变量的显示格式进行设置。

在命令窗口中输入:

利用describe命令查看数据集的简明汇总表,在命令窗口中输入:

运行命令后,输出结果如图2-1(a)所示,给出了数据的显示格式。

运行命令后,输出结果如图2-1(b)所示,给出了数据的显示样式。

运行命令后,输出结果如图2-1(c)所示。

运行命令后,输出结果如图2-1(d)所示。

运行命令后,输出结果如图2-1(e)所示,可以发现pop的第5行值中没有逗号,这是因为该值太大,Stata无法插入逗号,仍遵守当前的宽度11个字符。

运行命令后,输出结果如图2-1(f)所示。

运行命令后,输出结果如图2-1(g)所示。

显示格式通过format命令将永久附加在变量上。例如,保存后的数据在下次使用时,state仍将被格式化为%-14s,region仍将被格式化为%-8.0g等。

图2-1 显示格式调整

【例2-2】对数据集fmtxmpl.dta中的标识变量empid进行前导0显示格式设置。在命令窗口中输入:

利用describe命令查看empid的简明汇总表,在命令窗口中输入:

运行命令后,输出结果如图2-2(a)所示,给出了empid的显示格式。

运行命令后,输出结果如图2-2(b)所示,给出了数据的显示样式。

运行命令后,输出结果如图2-2(c)所示,在数据前面添加了前导0。

图2-2 前导0显示格式设置

【例2-3】数据集fmtxmpl2.dta中包含某公司的员工信息,这些信息包括雇佣日期(hiredate)、登录时间(login)和注销时间(logout)。hiredate存储为浮点型,login和logout存储为双精度浮点型。现需要为这3个变量设置日期显示格式。

在命令窗口中输入:

运行命令后,输出结果如图2-3(a)所示。

运行命令后,输出结果如图2-3(b)所示。

运行命令后,输出结果如图2-3(c)所示。

运行命令后,输出结果如图2-3(d)所示。

图2-3 日期显示格式设置

2.1.4 变量标签设置

为帮助用户更清晰地掌握数据的结构和变量,Stata通过标签为变量、数据等提供说明。Stata通过标签工具可以为数据集添加标签,也可以为变量和变量的值添加标签。

添加标签的命令是label,该命令的调用格式为:

其中,"label"为要添加的标签说明;varname指定要添加说明的变量;lblname为标签的名称。

【例2-4】在数据集hbp4.dta中查看并创建变量标签。

在命令窗口中输入: