查看原文
其他

数据含义记不住?—— label“大神”来帮忙

数据分析团队 Stata and Python数据分析 2022-03-15

本文作者:孙晓玲

文字编辑:李钊颖

技术总编:李朋冲


作为一个数据处理和分析软件,Stata的强大功能使得我们的研究和学习效率大大提升。在很多时候,我们需要处理庞大的数据集,它们可能有着成百上千个变量,且许多都以英文简写来表示。在使用过程中,我们可能会混淆变量的含义,如果我们同时在处理几个数据,甚至连“混淆”都不可得了——只留下遗忘...
 
为解决这一问题,Stata提供了一个便捷的命令——label。顾名思义,label命令允许我们进行“贴标签”的操作,其对象包括数据集、变量和数值三种类型。在介绍该命令之前,我们调用Stata自带的auto数据集,查看其数据信息。程序和结果如下:

sysuse auto, cleardescribe


上图右上角显示“1978 Automobile Data”,可知这是1978年的汽车数据;表格最后一列“variable label”表示变量标签,解释了各个变量的含义;倒数第二列“value label”为值标签,显示对变量“foreign”的取值添加了标签。
 
那么,这些标签是如何添加的呢?我们通过一个案例,为大家一一“揭秘”。首先使用input命令,输入某个班级学生的考试信息,包括他们的学号、姓名、性别、民族及各科成绩。程序如下:

clearinput id str20 name gender nationality English Math Chinese1 "李华" 0 1 77 90 882 "阿塔丽" 1 2 82 76 753 "张丽" 1 1 89 88 794 "古拉马" 0 2 73 84 855 "张伟" 0 1 79 75 916 "布兰克" 0 3 99 84 74end

在此基础上,我们分别介绍数据集标签、变量标签和值标签的添加。

 

1.数据集标签

 

对当前数据集贴标签,可将数据集命名为特定名称。其基本语法如下:

 

label data["label"]

 

在本例中,我们将创建好的数据集命名为 “3年(2)班成绩单”,程序和结果如下:


label data "3年(2)班成绩单"describe


如上,在结果栏,显示出数据集的标签为3年(2)班成绩单

 

2.变量标签

 

对当前数据集中的变量贴标签,用于记载变量名含义,以便后续区分各个变量。其基本语法如下:

 
label variable varname ["label"]
 

在本例的数据集中,有7个不同变量,我们分别给各个变量添加标签。如下:


label var id "学号"label var name "姓名"label var gender "性别"label var nationality "民族"label var English "英语"label var Math "数学"label var Chinese "语文"describe

如上,在贴上标签后,各个变量的含义一目了然。

 

3.值标签

 

值标签可对变量的观测值添加标签,用于记载不同取值的特殊含义。其基本语法如下:

 
label define lblname #"label" [# "label" ...] [, option]
label values varlist lblname [, nofix]
 

添加值标签分两步走:

第一步设置值标签名(lblname)并设置不同取值的标签含义(#代表值,"label"代表值的含义);

第二步将设置的值标签名(lblname)赋值给变量(varlist)

 

常用选项的含义如下:

add:新增值标签

modify:修改值标签

replace:替换值标签

 

在添加值标签之前,我们首先查看本例中的变量取值情况。如下所示:



由上图可知,性别变量gender的取值分别为“0”、“1”,民族变量nationality的取值分别为“1”、“2”、“3”。为便于区分各个取值的含义,有必要为其添加值标签。假设在性别变量中,“0”代表“男性”,“1”代表“女性”;在民族变量中,“1”代表汉族,“2”代表少数民族。我们通过如下程序进行设置:


label define g_values 0 "male" 1 "female"label values gender g_values //将值标签名赋值给变量genderlabel define n_values 1 "汉族" 2 "少数民族"label values nationality n_values


如上,增加值标签后,变量gender和nationality的取值变成蓝色的“字符串”,右侧也显示出值标签名。然而,这些蓝色字体并非真正的字符串,而是以字符形式显示的数值,点选单元格便可查看其真实取值。如图,我们选取变量gender的第二个观测值,单元格里显示的是“female”,而上方框里则是其真实取值“1”。

 

当然,我们也可以在设置完值标签后用“label dir”和“label list”命令查看值标签,结果如下:



我们看到,变量nationality的取值“3”并未成功添加上标签。此时,可采用add选项,为其增加一个标签。程序和结果如下:


label define g_values 3 "I don't know", add //增加数据标签


如上,我们为数值“3”增加了值标签“I don't know”。若我们觉得这一值标签名不太恰当,想将其修改为未知,则可使用modify选项。程序和结果如下:


label define n_values 3 "未知", modify //修改数据标签


这样,我们就将原来的值标签 “I don't know”更换为中文未知。在很多时候,我们想要批量修改某一变量的值标签,replace选项便派上了用场,它可以快速替换某一变量当前的值标签。例如,我们想将变量gender的值标签更换为男性女性,则可执行如下程序,结果如下:


label define g_values 0 "男性" 1 "女性", replace //替换数据标签


如果不需要某个标签了,可以使用“label drop”删除值标签,比如我们不需要变量nationality的值标签,此时我们要删除值标签。程序和结果如下:

label drop n_valueslist


经过以上介绍,我们便对标签命令label的用法有了大致的了解。增加了标签后,就不会对变量傻傻分不清楚啦!



对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!
往期推文推荐

实战演练-如何获取众筹项目的团队信息

Zipfile(一)

tabplot命令

Jupyter Notebook不为人知的秘密

字符串方法(三)

数据,我要“拷打”你

花式调用返回值 —— svret与storedresults
encode 和decode——带你探索编码与解码的世界
字符串方法(二)
如何快速生成分组变量?
用Stata实现数据标准化
字符串方法介绍
Stata16新功能之“框架”——frlink连接多个数据集(3)
Stata16新功能之“框架”——基础命令大合集(2)
三分钟教你读懂Python报错
解析XML文件
命令更新之reg2docx:将回归结果输出到word
命令更新之t2docx——报告分组均值t检验

关于我们

微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata和python的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存