一日一技|Stata筛选出字符串中非数字的行 |
您所在的位置:网站首页 › 正则表达式中非数字字符 › 一日一技|Stata筛选出字符串中非数字的行 |
前言 本期是新的专栏的第一篇,主要是想写些随笔,但是又是自己感觉一些平时比较有用的小技巧,以期有所帮助hhh下面就是开始正题 问题首先生成一个数据并且生成它的滞后项 clear input id year str10 price 1 2000 "$800块" 2 2002 "$200元" 3 2004 "800" 4 2006 "四十块" 5 2008 "9.2" end显示为: 数据显示我们想筛选出其中的非数字行,即剔除3和5 解决方式我们结合正则表达式进行list: list id price if regexm(price,"[^0-9]")其中,"[^0-9]"表示非数字文本 返回结果 初步结果但是我们可以看到,9.2被包括在内了,所以这时候需要再加上一句: list id price if regexm(price,"[^0-9]") & !regexm(price,"[0-9][\.]")加多一个并列条件,表示不包含数字后紧跟着一个小数点的格式。正则表达式[0-9][\.]表示一个数字后紧跟着一个小数点。在此表达式前添加!表示逻辑非,即筛选出不满足此格式的字符串。即可以实现我们的目标: 最终结果封面图片来源微博@kelvin李 关注我们感兴趣的朋友可以关注公众号: 数据线的非标准答案 希望分享一些想记录些数据分析中用到的Python,R,Stata;写作中用到的Markdown和Latex;社科论文学习中记下的计量和数理知识;机器学习和自然语言处理。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |