查看原文
其他

进化的标签管理助手——elabel命令

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:刘子艳,河南大学经济学院

本文编辑:陈丹慧

技术总编:李婷婷

Stata&Python云端课程来啦!

     寒雪梅中尽,春风柳上归。为了感谢大家长久以来的支持和信任,爬虫俱乐部为大家送福利啦!!!Stata&python特惠课程双双上线腾讯课堂~原价2400元的Python编程培训课程,现在仅需100元,详情请查看推文《Python云端课程福利大放送!0基础也能学~》;原价600元的正则表达式课程,现在仅需49.9元,详情请查看推文《与春天有个约会,爬虫俱乐部重磅推出正则表达式网络课程!》;另外,原价600元的基本字符串函数课程,现在仅需49.9元,更多信息请查看推文《与春天有个约会,爬虫俱乐部重磅推出基本字符串函数网络课程》。变的是价格,不变的是课程质量和答疑服务。对报名有任何疑问欢迎在公众号后台和腾讯课堂留言哦!
1导读

在之前的推文《 让你的数据一目了然—label命令介绍 》中,我们为大家介绍了可以给数据贴上标签的 label 命令。但在使用过程中,label命令逐渐展现出了自己的短板,譬如:不支持通配符;不能直接对标签名进行修改等。为了让我们的数据整理工作更加方便,今天小编为大家介绍功能更加完善的 elabel 命令。

2命令安装及语法介绍 

  elabel 命令是一个外部命令,初次使用需要进行安装。安装命令为:

 ssc install elabel

  elabel 命令的语法结构为:

 elabel subcommand [ elblnamelist ] [ mappings ] [ iff eexp ] [ , options ]
  •  subcommand  为子命令, elabel  label 的子命令相同,有elabel variableelabel defineelabel direlabel list等等;

  •  elblnamelist  为值标签名列表,可以包含通配符*, ~, 和?;

  •  mappings  为值-标签具体映射关系,可以使用表达式;

  •  iff eexp  为条件表达式。 eexp 通常包含通配符#和@。#字符作为(整型)值的占位符,而@字符代表文本。

3实例操作

3.1  elabel list --列出值标签的名称和内容

贴上标签后,我们可以通过 elabel list 命令来查看标签从而获取信息。 elabel list 命令的基本语法为:

 elabel list [ elblnamelist ] [ iff eexp ] [ , options ]

例如:如果要查看数据集nlsw88中值标签 gradlbl 的内容,可以通过 elabel list 查看。具体如下:

sysuse nlsw88,clear //载入nlsw88数据集elabel list gradlbl //列出值标签 gradlbl 的名称和内容

上述操作也可以通过 label 命令得到结果;但比label命令更优越的功能是 elabel 命令可以使用通配符来查看值标签,而label命令不支持使用通配符。例如:

elabel list gra~ //可以使用通配符~,模糊查询gra开头的值标签

  elabel list 可以列出贴在collgrad上值标签的名称和内容:

elabel list (collgrad) //查看贴在collgrad上的值标签的名称和内容

  elabel list 可以使用条件表达式,找出满足条件的值标签内容:

elabel list gradlbl iff (#>0) //列出满足标签内容为大于0的整数这个条件的值标签内容

3.2  elabel rename --值标签的重命名

当需要更改值标签名称时,我们可以使用 elabel rename 命令。 elabel rename 命令的基本语法为:

 elabel rename oldlblname newlblname [ , options ]
  •  oldlblname  newlblname 中可以包含通配符 *, ?, 和 #;

例如:如果要将nlsw88数据集中值标签occlbl名称修改为occup,可以:

sysuse nlsw88, clear //调入nlsw88describe occupationelabel rename occlbl occup //将值标签名称occlbl更改为occupdescribe occupation 
 从结果中我们可以看到值标签的名字已经由occlbl改为occup了。

如果我们想要删除值标签中所有lbl后缀,可以:

elabel rename (*lbl) (*)

从上图就可以看到所有lbl后缀均被删除了。

  我们也可以通过加上 upperlower  和  proper  将值标签改为大写、小写以及首字母大写的样式。如:

elabel rename occ* , upper // 将以occ开头的所有值标签更改为大写

3.3  elabel duplicates  -- 报告或删除重复的值标签

在数据集中,不小心很容易有重复的值标签,此刻我们就需要 elabel duplicates 来帮助我们报告或者删除重复值标签。

其中报告重复值标签的语法为:

 elabel duplicates report [ elblnamelist ]

删除重复值标签的基本语法:

  elabel duplicates remove elblnamelist
  elabel duplicates retain elblname [ elblname ... ]
例如:

首先我们做一些准备:

sysuse nlsw88, clearelabel define southlbl 0 "no" 1 "yes" //定义值标签southlblelabel values south southlbl //将值标签southlbl贴于south变量elabel define c_citylbl 0 "no" 1 "yes" //定义值标签c_citylblelabel values c_city c_citylbl //将值标签c_citylbl贴于c_city变量describe south c_city //查看south变量和c_city变量的标签

做好了上面的准备之后,我们就可以使用 elabel duplicates  命令对重复的值标签进行处理了。

找到重复的值标签:

elabel duplicates report

结果报告了c_citylbl 有一个重复值标签: southlbl。

接下来我们创建一个新的重复值标签yesno。

label define yesno 0 "no" 1 "yes" //定义值标签yesno
使用 elabel duplicates retain  来保留yesno值标签,删除重复的southlbl 和 c_citylbl。
elabel duplicates retain yesno //保留yesno值标签describe south c_city //查看south变量和c_city变量的标签

      以上就是本次关于 elabel  命令的介绍啦。 elabel  命令作为一个强大的标签管理工具,还有很多好用的功能值得大家去深入探索,欢迎大家留言交流哦~


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

往期推文推荐

“学术明星”——双重差分法(DID)的Stata操作

偷懒小妙招| selenium之玩转鼠标键盘操作(上)

【爬虫实战】南京地铁又上热榜——客流量分析

renfiles:批量重命名文件的利器

Stata中字符串的处理

物以类聚——浅述k-means聚类算法

我在哪里?调用高德API获取地址经纬度信息

超级简单的条件函数,轻松生成虚拟变量

Python云端课程福利大放送!0基础也能学~

【爬虫实战】“我们,继续新故事”——爬取LOL英雄皮肤

“人像动漫化”—Python实现抖音特效

跨框架合并数据|frlink的用法,你get到了吗

《唐探3》做错了什么?|来自150万字影评的证据

爬虫俱乐部年度总结|《请回答2020》

春节假期临近,来爬爬豆瓣看看有什么好剧

putdocx生成Word文档so easy!

模糊匹配我只用这一招!

利用tushare获取财务数据

爬虫实战|Selenium爬取微信公众号标题与链接

轻轻一点,就知有没有|rqrs命令介绍

强大的正则表达式

自动群发邮件(二)——附带附件

自动群发邮件--email和smtplib基本模块的使用

批量处理变量名和标签的小方法

计算工作日的小能手——workdays

Seminar | 企业错报与银行贷款合同

关于我们 


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



此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。

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


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

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