![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=1739622202-W3uAnaJAdHLtbqorgOXNYOIejRGWzVon-0-f91cce75f6d4192f1cb3cefaccdd1ada)
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=1739622202-PwmwDJhU9fVolw3CdQjisxLaT8vgs4kF-0-79a9d3e4a890c35bcb176591bc0caac9)
其中,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=1739622202-Gsd95J6f3dYWY7A7JpikUqEJMqPZ5qLB-0-ab1616d8c23abeee05268054f5dfa16e)
通常,数值型变量的显示格式采用%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=1739622202-bJbdshMXEao9oSLe5BdjWlAPJssZfQv2-0-984511ea32a72850a593d051565d2e2a)
4.显示格式命令format
通过format命令可以规定各类型变量的显示格式,该命令的调用格式为:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_1.jpg?sign=1739622202-q5Kei0F8UjGGqPSH1TajGHDW3zSjVLkC-0-ca92b8b8f98caef15a7592154e0519a0)
其中,%fmt可以是数值型变量、字符型变量或日期型变量的显示格式。
查看变量目前所采用的显示格式的命令调用格式为:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_2.jpg?sign=1739622202-B6HQvuGruB4IZ4EpCwYI3nwtN7MRw4wb-0-40f81586125e2dfa05c6a62ee2ece9b1)
说明
命令中带有下画线“_”的字符表示可采用的缩写形式,因为命令的缩写形式不唯一,因此本书仅在本章中给出了命令缩写下画线,其后章节的命令不再给出。
【例2-1】对数据集census10.dta中变量的显示格式进行设置。
在命令窗口中输入:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_3.jpg?sign=1739622202-pQH05l07rMPnvg1yH4NOIASEckpvWfCZ-0-9b07f0ae1dd825ebcc8d8e0a951cd620)
利用describe命令查看数据集的简明汇总表,在命令窗口中输入:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_4.jpg?sign=1739622202-IJ1zgCWok92ttVh0dJ6jViC2s4YuCBos-0-247fd30d98cf64b1ceef5d4e4ca8db94)
运行命令后,输出结果如图2-1(a)所示,给出了数据的显示格式。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_5.jpg?sign=1739622202-xiaiT3mFvOHuRffskJg5jEmApiDektd6-0-c3db7e1b4a6c3fe9ae2a68c175ced9bc)
运行命令后,输出结果如图2-1(b)所示,给出了数据的显示样式。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_6.jpg?sign=1739622202-Si66jXCYmDu2EsHK1vuuCZnZp1sDvYlt-0-282d9f479ca11d6086c9efe75ffb82b0)
运行命令后,输出结果如图2-1(c)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_7.jpg?sign=1739622202-pXPpxAl2YbqwELdIaaUT10I5qW7dbBWs-0-5494c87210ad52ecf088dfb9774f8c7c)
运行命令后,输出结果如图2-1(d)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_8.jpg?sign=1739622202-B6aKepExGM27nh1fUipwGmYU8sWGJAJm-0-17c65012fecc0c9a43b3e41240a93523)
运行命令后,输出结果如图2-1(e)所示,可以发现pop的第5行值中没有逗号,这是因为该值太大,Stata无法插入逗号,仍遵守当前的宽度11个字符。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_9.jpg?sign=1739622202-a7CJBPVQgSYWIYD3iUS2sobzDAkqGquC-0-c56053ee1e738670452dc6fad1cb16b3)
运行命令后,输出结果如图2-1(f)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_33_10.jpg?sign=1739622202-YVlFwAle0wfd8fmBdcouX21Ow96jKuaN-0-3b3383a6328452548dfc3ff55fb18724)
运行命令后,输出结果如图2-1(g)所示。
显示格式通过format命令将永久附加在变量上。例如,保存后的数据在下次使用时,state仍将被格式化为%-14s,region仍将被格式化为%-8.0g等。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_34_1.jpg?sign=1739622202-q9jJIhCfV7OGAHgbCRBJMYXdw9JenFd8-0-696f45ae36c6b9161a8f1159370a2720)
图2-1 显示格式调整
【例2-2】对数据集fmtxmpl.dta中的标识变量empid进行前导0显示格式设置。在命令窗口中输入:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_1.jpg?sign=1739622202-Bkfe9k916QQtL0XdXr2h6viOXVZ6yl8m-0-2613c70fd298a25a2f4dca2ae34ef050)
利用describe命令查看empid的简明汇总表,在命令窗口中输入:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_2.jpg?sign=1739622202-iejGbhnkmrRDdZElTbc93jJnii8WlvDo-0-c11ec9f6cff8b27a2357729f95aee988)
运行命令后,输出结果如图2-2(a)所示,给出了empid的显示格式。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_3.jpg?sign=1739622202-7XKsA52K6VG51Rs1L0MAyv6298NaGfzV-0-9216662c42642b28c5a4a28b5e8a2c34)
运行命令后,输出结果如图2-2(b)所示,给出了数据的显示样式。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_4.jpg?sign=1739622202-Y6ZvXZyNilryTgJydi5lucXy7ASFgeA7-0-1d6bb133c24fb190db7a31405a500629)
运行命令后,输出结果如图2-2(c)所示,在数据前面添加了前导0。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_5.jpg?sign=1739622202-oUjqRrO5NFJYvfRKjguNIxfRZmDq9A9t-0-63e519fd32ae2d02a67838084c5173c8)
图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=1739622202-5PqXmkiLppU2UGWZ7iYz2Ra6zQUQabX8-0-40ac484b6af4eb3f8c8f0be6cfbcfad3)
运行命令后,输出结果如图2-3(a)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_7.jpg?sign=1739622202-wGpeXw2mPa4q7KxXyRGX6J7E63soB1AU-0-e49702bf577126970ac87ff764c459ce)
运行命令后,输出结果如图2-3(b)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_8.jpg?sign=1739622202-LDubSCY3L261jqmuaI52tuMgLnEeVw2Y-0-d61fe02f908cc1786af61cff42f5813a)
运行命令后,输出结果如图2-3(c)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_35_9.jpg?sign=1739622202-AQQO4rXLvLaynTYIG4UbgHXqbInS8Klj-0-c55bc0f193a2596d84a2c11f2107bf3a)
运行命令后,输出结果如图2-3(d)所示。
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_36_1.jpg?sign=1739622202-sdVt3x1NbwD1er62KDU8Fn95ewldkpDZ-0-68743a0a6da1fcb5c92f6a5faae3e265)
图2-3 日期显示格式设置
2.1.4 变量标签设置
为帮助用户更清晰地掌握数据的结构和变量,Stata通过标签为变量、数据等提供说明。Stata通过标签工具可以为数据集添加标签,也可以为变量和变量的值添加标签。
添加标签的命令是label,该命令的调用格式为:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_36_2.jpg?sign=1739622202-Kz1JD7fqT9kuPrNqB85fplVXuPBaGhp3-0-151851e7ba67026eb2c6f308f92ddb01)
其中,"label"为要添加的标签说明;varname指定要添加说明的变量;lblname为标签的名称。
【例2-4】在数据集hbp4.dta中查看并创建变量标签。
在命令窗口中输入:
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_36_3.jpg?sign=1739622202-UOSKVRIiwmrcxLbtT1HCbMfEdfm58f7B-0-16e07b0eac0e6e10fc25faa21d88a6c1)
![](https://epubservercos.yuewen.com/854011/28468892602002906/epubprivate/OEBPS/Images/46623_37_1.jpg?sign=1739622202-ZtEXtN3IFNwnSgZiULlMvsyiMvs8S5tp-0-1b6745ada461653606dec40b8ce7f2c4)