京公网安备 11010802034615号
经营许可证编号:京B2-20210330
SAS正则式之prxsubstr 以及prxnext
今天介绍的正则式中的prxsubstr函数以及prxnesth函数。
这两个函数需要配合call使用,生成start以及length两个变量以供后面的使用。先介绍基本的参数。
Call prxsubtr(pattern_id,string,strat,length)
pattern_id:跟prxmatch的用法一样,需要填入prxparse函数规定的字符形式,需要规定一个变量储存。譬如re=prxparse(‘\/d/d/d\’)即搜索任意三个数字。
String:填入的是你要搜索的目标,即你在哪里搜索上面的任意三个数字;
Start:这参数不用填,这个数字是运行之后会返回的变量,即在搜索目标中的起点位置
Length:跟start的意思一样,但是如果是已经知道位数的这个参数就没上面意义了,如果对于re=prxparse(‘\/d+\’)就有意义啦。
那么趁热打铁,来个例子;
datazipcode;
if_n_=1thenre=prxparse("/ \d{5}(-\d{4})?/");
retainre;
inputstring$80.;
lengthzip_code$10.;
callprxsubstr(re,string,start,length);
ifstart gt0thendo;
zip_code=substr(string,start+1,length+1);
output;
end;
datalines;
john smith 12 broad street flaemington, nj 08822
philip judson apt #1,building 7 777 route 730 kerrville, tx 78028
dr.roger alan 44 commonwealth ave. boston, ma 02116-7364
;
procprintdata=zipcodenoobs;
title"listing of data set zipcode";
run;
结果:
代码中寻找的prxparse("/ \d{5}(-\d{4})?/");在任意五个数字之前有一个空格,看清楚哈,\d{5}前面是有一个空格的,然后不知道后面是否接着“-\d{4}”的数字串。这里的substr(string,start+1,length+1)为什么要加1呢,因为有空格的存在,空格也占一个字符。估计这么一个简单的例子,也能知道prxsubstr的用法了。
接下来介绍的是prxnest这个函数。
Call prxnext(pattern_id,start,stop,position,length)
pattern_id:跟上面的那个prxsubstr一样填的是prxparse返回的搜索的目标;
start:就是你想在目标变量中那个位置开始搜索;
stop:就是你想在目标变量中的那个位置结束搜索。
Position:发现目标字符串的开始位置,所以这里的start跟之前的start是不一样的,要记住。
Length:这个就跟上面的prxsubstr的length一样,可以参照上面的。
那现在话不多说,直接上个例子!!
datafind_num;
if_n_=1thenret=prxparse("/\d+/");
retainret;
inputstring$40.;
start=1;
stop=length(string);
callprxnext (ret,start,stop,string,position,LENGTH);
ARRAYX[5];
DOI=1TO5WHILE(POSITION GT0);
X[I]=INPUT(SUBSTR(STRING,position,length),9.);
callprxnext(ret,start,stop,string,position,length);
end;
keepx1-x5 string;
datalines;
this 45 line 98 has 3 numbers
none here
12 34 78 90
;
procprintdata=find_numnoobs;
title"listing of data set find_num";
run;
结果是:
这个过程就是把string中全部的数字的部分提取出来,并赋予给x1-x5,这个就是涉及到你要生成多少个xi的问题,建议看下最长的那个观测能生成的数字个数,就设置i等于多少。这里眼神一下,譬如你先有份数据是什么“2016年12月5号,在麦当来消费56块钱”,你这时候需要提取这个时间以及金额就可以运用这个过程啦。数据分析师培训
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
【核心关键词】知识、设备、工程师、数字化、建模、算法、工业大数据、数据分析、控制算法、机器学习、深度学习、业务目标、工 ...
2026-08-05增长率是数据分析、业务报表、可视化看板中最核心的指标之一,常用于衡量营收、销量、用户量、流量等业务数据的涨跌幅度与发展趋 ...
2026-08-05小陈是某电商平台的数据分析师。老板交给他一个任务:“我们平台的注册用户已经突破1000万了,想了解一下用户的平均月消费金额。 ...
2026-08-05在机器学习建模、数据预处理、抽样划分、模型初始化训练的全流程中,随机种子是控制实验随机性、保证结果可复现、提升模型稳定性 ...
2026-08-04Python作为面向对象的主流编程语言,核心编程体系由变量、方法、类三大基础要素构成。三者层层递进、相互协作,支撑起所有基础代 ...
2026-08-04 很多数据分析师沉迷于复杂的机器学习算法,却忽略了数据分析最基础也最核心的能力——描述性统计。事实上,80%的商业分析问 ...
2026-08-04为什么学习数据分析? 当下,我们已然步入数据要素价值全面释放的智能时代。数据不再只是零散的数字记录,更是驱动新质生产力运 ...
2026-08-03CDA等级认证证书有效期为三年,三年进行一次年审,主要考察CDA持证人的职业发展情况;学历、工作单位及职业变更情况;继续教育 ...
2026-08-03【核心关键词】金融、岗位、企业、算法、知识、专业、理论、课程、软件、数据分析、业务类型、应用场景、经营管理、大型企业、 ...
2026-08-03在日常数据分析、业务报表复盘、业绩预测工作中,平均增长率是衡量数据长期变化趋势的核心指标,广泛用于营收增长、用户增长、销 ...
2026-08-03很多人把统计学理解为“一堆公式和计算”,却忽略了它的本质——一门让数据“开口说话”的科学。真正的数据分析高手,不是会算平 ...
2026-08-03在数据指标体系搭建工作中,从业者常困惑于指标搭建的核心逻辑:究竟是依托一线零散数据自下而上汇总指标,还是基于战略目标自上 ...
2026-07-31在数据分析、问卷研究、实验复盘、业务建模的工作中,大多数人最关注的是“用什么统计方法”:是做T检验、方差分析、卡方检验, ...
2026-07-31 许多数据分析师精通Excel函数和SQL查询,但当面对一张上万行的销售明细表,要快速回答“哪个地区销量最高”“哪款产品增长最 ...
2026-07-31在问卷调研的数据分析流程中,“先检验信效度,再开展进阶统计分析”是通用的规范逻辑。很多从业者会听到“问卷效度高,后续可以 ...
2026-07-30【核心关键词】大数据、统计学、专业、毕业生、论文、课程、计算机、建模、知识、数据分析、机器学习、数据科学、大数据技术、 ...
2026-07-30 很多数据分析师掌握了Excel函数、会写SQL查询,但当被问到“数据从哪里来”“数据加工有哪些步骤”“如何使用分析工具连接数 ...
2026-07-30在业务数据分析中,按天拆分统计夜间时段的数据是高频需求——比如电商夜间订单监测、平台夜间用户活跃度分析、运维系统夜间异常 ...
2026-07-29在机器学习建模与特征工程实践中,判断不同特征对模型预测效果的贡献度,是特征筛选、模型解释、业务归因的核心环节。特征置换重 ...
2026-07-29 很多数据分析师精通Excel单元格操作,但当被问到“表结构数据的基本处理单位是什么”“字段和记录的本质区别”“为什么表结 ...
2026-07-29