![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=1739142185-olHnC7HgVLcFuDDwCiNGSfrfq1mym55y-0-ba2d718b70176063a239490d1efc73c2)
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=1739142185-4CYF7DEnUQ60MwpOB86ZzyC9foi9PVjT-0-22c7e49d3bdd8ea7e4f7a7e7de46ced4)
其中,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=1739142185-R72MeVtObZYyB9UrCdlTPWBvJK0Bua8E-0-d37fe59a494bb89759fb02833ca19a0d)
通常,数值型变量的显示格式采用%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=1739142185-1t8MWFZpCE2kITsZtTbcLSZ8MbbxBFsI-0-d6ccc72eb4839e1088ff26e01a5ae7f5)
4.显示格式命令format
通过format命令可以规定各类型变量的显示格式,该命令的调用格式为:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_1.jpg?sign=1739142185-4SJNNSI1xSXTwukU4uXVpnVv87QHxnCp-0-d6b3e6c0334019d29b0b448b928bdc58)
其中,%fmt可以是数值型变量、字符型变量或日期型变量的显示格式。
查看变量目前所采用的显示格式的命令调用格式为:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_2.jpg?sign=1739142185-nmNvPBLl8EbVaAPMQraQ9weNXjRglkUc-0-c90e87ddeace4dc15ffc8d64b418c6bc)
说明
命令中带有下画线“_”的字符表示可采用的缩写形式,因为命令的缩写形式不唯一,因此本书仅在本章中给出了命令缩写下画线,其后章节的命令不再给出。
【例2-1】对数据集census10.dta中变量的显示格式进行设置。
在命令窗口中输入:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_3.jpg?sign=1739142185-O3mQRe5p9QucM49dsB97jiX30LsH9otg-0-8bee0600c2e45401f777b48b8fd40e9b)
利用describe命令查看数据集的简明汇总表,在命令窗口中输入:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_4.jpg?sign=1739142185-pMcFAZzZTGoxUC0nokwfWqdh83JC5Snb-0-d7e294ccd20a866da187a043751edd20)
运行命令后,输出结果如图2-1(a)所示,给出了数据的显示格式。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_5.jpg?sign=1739142185-M563MfVScwLXBodrPKPn7rduWfEDuxQi-0-4d3d52d3853ddf78a1305bf63db20938)
运行命令后,输出结果如图2-1(b)所示,给出了数据的显示样式。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_6.jpg?sign=1739142185-5409Baq4eoITcBMB3aX5nX6hWTUwhQpi-0-edd98827181e5eceaf395fd2c7b8f297)
运行命令后,输出结果如图2-1(c)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_7.jpg?sign=1739142185-ommjZJSG0ALKdJGL4VJApGBdpFG0UT1r-0-a2b9c09965674e946bc120789b472e8a)
运行命令后,输出结果如图2-1(d)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_8.jpg?sign=1739142185-pYfzpyfX53WyKUx6ysOCKuGtpKaZGckp-0-780229ec50ab1dd3266aa6f7f04f7a80)
运行命令后,输出结果如图2-1(e)所示,可以发现pop的第5行值中没有逗号,这是因为该值太大,Stata无法插入逗号,仍遵守当前的宽度11个字符。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_9.jpg?sign=1739142185-xUwD89NRXEkdNNAdiaAbgOKkm4e8GcH6-0-b23efd00c9be8747486a3560ba715d6c)
运行命令后,输出结果如图2-1(f)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_10.jpg?sign=1739142185-gpI6BGcNs3PXhcOjJklLlqBnFawGqaLc-0-0a890151807bdfdff6e9331ec53c5ddd)
运行命令后,输出结果如图2-1(g)所示。
显示格式通过format命令将永久附加在变量上。例如,保存后的数据在下次使用时,state仍将被格式化为%-14s,region仍将被格式化为%-8.0g等。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_34_1.jpg?sign=1739142185-pN7YJO714qZWMxkMn3Vm6XT760L5ptK7-0-1f6ce376f2c85694bd8f70b05c3a9b97)
图2-1 显示格式调整
【例2-2】对数据集fmtxmpl.dta中的标识变量empid进行前导0显示格式设置。在命令窗口中输入:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_1.jpg?sign=1739142185-JGIrrJBt3iGQPIEnlGusXyPCjhklzdeg-0-ae7b9bfddcc98eddd3da7884f1014587)
利用describe命令查看empid的简明汇总表,在命令窗口中输入:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_2.jpg?sign=1739142185-iqxn3j0lABYmiRPzinL401YKL6J31xgG-0-df6abb56f417294fe728c7e1ab1f1e05)
运行命令后,输出结果如图2-2(a)所示,给出了empid的显示格式。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_3.jpg?sign=1739142185-3sADZTjK0XukULDknRP5qXBtKpMXw88B-0-dfb9fad688879c88346f50fb8dfd81d2)
运行命令后,输出结果如图2-2(b)所示,给出了数据的显示样式。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_4.jpg?sign=1739142185-uSQcHjrfjRKLN6s3Cs5kEtyywAzAau1R-0-6963fd1c3e715c52bcea4a5fe4093716)
运行命令后,输出结果如图2-2(c)所示,在数据前面添加了前导0。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_5.jpg?sign=1739142185-dNnG0mqopvN3SuoOB8h2rksjcNbvRnSU-0-584b8262e7107c309ee83b991c544508)
图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=1739142185-xbqCRGlyWwLwcrXGrXjT1D033y3tZTL2-0-6ce3f350f453069826bf08d3e4e00536)
运行命令后,输出结果如图2-3(a)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_7.jpg?sign=1739142185-3uVbDLEO0agXAQlujRY7IvNOYqfhqmbp-0-c931a291dbe978c69e8f6cde8e6e7e68)
运行命令后,输出结果如图2-3(b)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_8.jpg?sign=1739142185-DBrcDh0Bn4kdUZIXT51pZ7mgSoyKXeef-0-c31c1bf8203313dfdad914eaa33169a9)
运行命令后,输出结果如图2-3(c)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_9.jpg?sign=1739142185-0pki44WQsPHdjUIn37A25NDpoZKh58OV-0-e546b9c3dc7d89f795fa6fd2318df070)
运行命令后,输出结果如图2-3(d)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_36_1.jpg?sign=1739142185-Ok5NR6zAVu0wESVJPObB6SkNJ4InKcWr-0-07149439872e857fb329386e38ec017c)
图2-3 日期显示格式设置
2.1.4 变量标签设置
为帮助用户更清晰地掌握数据的结构和变量,Stata通过标签为变量、数据等提供说明。Stata通过标签工具可以为数据集添加标签,也可以为变量和变量的值添加标签。
添加标签的命令是label,该命令的调用格式为:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_36_2.jpg?sign=1739142185-Q93xgd6WcCV2PXlio3acq5NDecbezcOL-0-7ed45b9f21d1cc42969e0e449bcd4710)
其中,"label"为要添加的标签说明;varname指定要添加说明的变量;lblname为标签的名称。
【例2-4】在数据集hbp4.dta中查看并创建变量标签。
在命令窗口中输入:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_36_3.jpg?sign=1739142185-fe5izcHAx4sMzJPu5A0OpVJW0pViM04G-0-e90ed73826ba5c5ef1a747e499638afe)
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_37_1.jpg?sign=1739142185-BVB5KsXzHZYPPr6UyTzUWhJVUAJXy6yl-0-f6a2c52b6e370556380b1e5d8723598f)