哈喽,诸君安。前边推文我们讲到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元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~
文字编辑:梅洁瓷傲
技术总编:刘贝贝
往期推文推荐:
7.一言不合就用stata写邮件(Outlook/Foxmail)
9.I have a Stata, I have a python
10.I have a Stata, I have a Python之二——pdf转word
关于我们
微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。
此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。
欢迎关注爬虫俱乐部
微信扫一扫
关注该公众号