分享

寻寻觅觅,热热闹闹,变量全在这里

 张春强2022 2017-03-31

哈喽,诸君安。前边推文我们讲到ds命令,它可以帮助我们查看和描述变量,今天再给大家介绍一个命令varsearch,其和ds命令有着相似的作用,但是varsearch命令可以运用正则表达式,这是ds命令不具有的优点。今天就来给大家简单介绍一下varsearch命令。

语法结构  

 varsearch [varlist], find(string) [label]

其中,find(string)选项表示指定一个要查找的字符串(注意:这个字符串可以使用正则表达式来匹配)。如果后边没有label选项,stata默认查找变量名称;如果后边加了label选项,stata将查找标签名称。


们以auto数据为例:

查找所有变量


clear

set more off

sysuse auto

varsearch, find(.)

通过varsearch, find(.)我们查找了所有的变量。其中,“.”是正则表达式的基本元字符,匹配任意一个字符,因为后边没有label选项,所以这里是查找变量名称,又通过正则表达式“.”匹配到了所有的变量。(当然,这里如果加上label选项结果是一样的,因为“.”将匹配到所有的变量标签,同样显示出来所有变量的信息。)


查找指定的变量


clear

set more off

sysuse auto

varsearch, find('[0-9]')

这里我们通过正则表达式“[0-9]”查找到了变量rep78,其表示查找变量名称中含数字的变量。往期推文中我们讲到过特殊元字符“\d”,其等价于“[0-9]”,需要注意的是,这里如果把“[0-9]”换为“\d”,其表示查找变量名称中含字母“d”的变量。

varsearch, find('\d')

这是为什么呢?笔者查看varsearch的ado文件,其程序中用的是regex函数,元字符“\d”只能在ustr系列函数(ustrregrexm、ustrregexs、ustrregexra、ustrregexrf)中使用,而这些函数只能在stata14中使用。Stata14之前版本只能使用以下正则表达式元字符:“[]”、“-”、“.”、“*”、“+”、“?”、“^”、“$”、“|”、“()”,其他元字符只能在stata14中使用。


查找指定的标签名称


clear

set more off

sysuse auto

varsearch, find('\(') label

通过正则表达式'\('可以查找到标签中含有小括号的变量查找出来。这里,因为“(”也是一个正则表达式元字符,所以用反斜杠“\”对其转义,“\(”表示“(”本身,因为后边有label选项,所以是对变量标签进行查找。


将变量名放在返回值中


clear

set more off

sysuse auto

varsearch, find(.)

dis r(varlist)

可以看到,变量名都放到了返回值中,可以在后续程序中调用。

varsearch命令可以使用正则表达式来匹配和查找变量名称或标签名称,会很好的帮助我们快速准确的找到某个变量及其标签。好了,今天的内容已经介绍完了,想了解更多的stata命令,请继续关注爬虫俱乐部!


 

以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~

                       文字编辑:梅洁瓷傲

技术总编:刘贝贝



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多