哈喽,诸君安。前边推文我们讲到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元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~ 文字编辑:梅洁瓷傲 技术总编:刘贝贝 |
|