![Stata统计分析从入门到精通](https://wfqqreader-1252317822.image.myqcloud.com/cover/748/48774748/b_48774748.jpg)
2.1 变量
统计数据的结构总是以变量为列、以观测值(或称为观测例、记录值)为行的矩阵形式的,如表2-1所示。其中,变量是统计分析语言的基本单位。
表2-1 统计数据的结构
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_30_1.jpg?sign=1738888623-kCySCu3n8E9shOKg9pWcSPcvfrqO6D4e-0-24edaeaeadf5c2e8e20eb93c084a51b3)
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 数值型变量
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_31_1.jpg?sign=1738888623-41vQrw5f3eXfKlV1wQQlJR34flg5hSLo-0-52531bee1ae2ef5d54670194e7ad78c5)
其中,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 数值型变量的显示格式示例
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_32_1.jpg?sign=1738888623-jxWcZahVPMTiod1qghrTtDyKLKvLvCWp-0-d989fdbc1f746be3995beedaec73c888)
通常,数值型变量的显示格式采用%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 日期型变量的显示格式
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_32_2.jpg?sign=1738888623-BMlIq6TWooGc1La5rfcPxruEXlUMl1fx-0-450e98f2feac65a7adb1f82ac74ba9fa)
4.显示格式命令format
通过format命令可以规定各类型变量的显示格式,该命令的调用格式为:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_1.jpg?sign=1738888623-USrtinWvpUt28plW71l9wUzXYzQjRx3Y-0-60d21c9e9d01548217f5b8346d8cfa33)
其中,%fmt可以是数值型变量、字符型变量或日期型变量的显示格式。
查看变量目前所采用的显示格式的命令调用格式为:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_2.jpg?sign=1738888623-mLhA9XHKYAuLSCeA8KYhig662gLD06ut-0-5380677b885ddc8c9e0453cc01184ba9)
说明
命令中带有下画线“_”的字符表示可采用的缩写形式,因为命令的缩写形式不唯一,因此本书仅在本章中给出了命令缩写下画线,其后章节的命令不再给出。
【例2-1】对数据集census10.dta中变量的显示格式进行设置。
在命令窗口中输入:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_3.jpg?sign=1738888623-yF7agSBKKo9WsKPC7Sdhs7YioEvGaRC1-0-da7e672e38e0e4943dd4d559900b91cc)
利用describe命令查看数据集的简明汇总表,在命令窗口中输入:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_4.jpg?sign=1738888623-aZ0J17JAEKQNGwFDb1ish1DrQZp0Nxeh-0-93859733cf2355828044a5ac5930bda0)
运行命令后,输出结果如图2-1(a)所示,给出了数据的显示格式。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_5.jpg?sign=1738888623-zQuz99HrellDCz1xSp50n51VVJCKgk9A-0-1cf84d2560d94b47c289252ec1aab520)
运行命令后,输出结果如图2-1(b)所示,给出了数据的显示样式。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_6.jpg?sign=1738888623-ajx1UqSjL81VE945Qnn7k8WbmzYbOBS5-0-2c5d6e725319d0c8a3de79eed36cd0ba)
运行命令后,输出结果如图2-1(c)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_7.jpg?sign=1738888623-N7Pb38TKy8lvgZX2cC81zENoXT162uiv-0-b0087e66067893e7c1a4222a3484e874)
运行命令后,输出结果如图2-1(d)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_8.jpg?sign=1738888623-KZEMW0uFRaVxQgQmHlxiE6Mv4qewdpGO-0-e64ffea86f206ae4c60615bc8b8ca86c)
运行命令后,输出结果如图2-1(e)所示,可以发现pop的第5行值中没有逗号,这是因为该值太大,Stata无法插入逗号,仍遵守当前的宽度11个字符。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_9.jpg?sign=1738888623-89SGlBWbdM9yuz6B6rbWhSd8FHTFCV9A-0-adf1cb80079873d7c9f6143e2e4b5cd9)
运行命令后,输出结果如图2-1(f)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_10.jpg?sign=1738888623-tKWfmEP0KoSPEM9f77AJrPc0MUHee6e9-0-8830df6ac91bb40375ff3e5e99698d91)
运行命令后,输出结果如图2-1(g)所示。
显示格式通过format命令将永久附加在变量上。例如,保存后的数据在下次使用时,state仍将被格式化为%-14s,region仍将被格式化为%-8.0g等。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_34_1.jpg?sign=1738888623-jheYzyLEqMJo8eu2eWzFk8hJ9M61EQcD-0-afe2fdcf08bcdd5cc312fd69b6ba5cd9)
图2-1 显示格式调整
【例2-2】对数据集fmtxmpl.dta中的标识变量empid进行前导0显示格式设置。在命令窗口中输入:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_1.jpg?sign=1738888623-YT8vHMXLPL998s654yBrjIKD2Z15fi0F-0-28e9f633d7087f6f43e9b956600740b3)
利用describe命令查看empid的简明汇总表,在命令窗口中输入:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_2.jpg?sign=1738888623-umNUU8Y56iyuEScFmEWhjqjzFoj2mFW3-0-cb418bb5ab1694255eec9bdb1bee0de5)
运行命令后,输出结果如图2-2(a)所示,给出了empid的显示格式。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_3.jpg?sign=1738888623-EPA7f0s5e8P4k1oDJT0CNAIPMnuAgO7u-0-c2836c3241cdc5d7b3b6aa1688dc127d)
运行命令后,输出结果如图2-2(b)所示,给出了数据的显示样式。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_4.jpg?sign=1738888623-tNFbjw0230VleNhGmyIeZH4kANdNxjjj-0-f4aeb58c60fea9c2fffc5cdc0ff676c2)
运行命令后,输出结果如图2-2(c)所示,在数据前面添加了前导0。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_5.jpg?sign=1738888623-HO4pMhrFyc5sDbR6P9Ivz22eY8iFFnLC-0-4e7d56869c8b3ba0e8ec3a8cc1a764db)
图2-2 前导0显示格式设置
【例2-3】数据集fmtxmpl2.dta中包含某公司的员工信息,这些信息包括雇佣日期(hiredate)、登录时间(login)和注销时间(logout)。hiredate存储为浮点型,login和logout存储为双精度浮点型。现需要为这3个变量设置日期显示格式。
在命令窗口中输入:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_6.jpg?sign=1738888623-DwxNNP44TTfhSsZW5YwyCCwUORvDOXIT-0-64b7ab31a436c9bbbdc845b77678235c)
运行命令后,输出结果如图2-3(a)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_7.jpg?sign=1738888623-zJa0tAqJh9zIkq3Fzgva9qoAD3QrD0hU-0-9efb286237119b788244792b3dc51916)
运行命令后,输出结果如图2-3(b)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_8.jpg?sign=1738888623-1db0vQ1w60KuFfGkgv7A6dhWjyG7AV6o-0-e06374704daf568ff2d0331bfc742a5f)
运行命令后,输出结果如图2-3(c)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_9.jpg?sign=1738888623-LkLRrjObMcJ40a0UybkNBUQA3m4xOPyr-0-5fcadfe0d508be2f6bf48406bfa82ee0)
运行命令后,输出结果如图2-3(d)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_36_1.jpg?sign=1738888623-saY0wgzUx7MKz3xVhRBC7hTuNr3PzqAM-0-44fbe2982c633b8416ad25171051d239)
图2-3 日期显示格式设置
2.1.4 变量标签设置
为帮助用户更清晰地掌握数据的结构和变量,Stata通过标签为变量、数据等提供说明。Stata通过标签工具可以为数据集添加标签,也可以为变量和变量的值添加标签。
添加标签的命令是label,该命令的调用格式为:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_36_2.jpg?sign=1738888623-5i62WrhoCmnsYPfRAoNLoV7ej8oB6pFa-0-06a903cc5bb47d6fa96cf4fa6584a5ad)
其中,"label"为要添加的标签说明;varname指定要添加说明的变量;lblname为标签的名称。
【例2-4】在数据集hbp4.dta中查看并创建变量标签。
在命令窗口中输入:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_36_3.jpg?sign=1738888623-vK97G6RoHta51FUfx7h4q9u6D9wO8mjM-0-5a1cfe351220a894a5cff834f613fb7b)
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_37_1.jpg?sign=1738888623-yqohPrsFHcMbdRDiTKpIXzyW0RfGFz0l-0-f3ff1d766b173cfcc48540d1fa2e8b6f)