打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Sas应用之截取文本函数详解
userphoto

2016.07.03

关注

在实际工作中我们需要提取某文本中需要的信息,如详细地址中提取省、市、区或某用药信息中提取药品名称等等。

一、excel方法  excel中字符截取函数主要有三个,leftrightmid函数。

1.1 left 函数  顾名思义,left函数从左开始截取多少字符,因此有两个参数,被截取的字符文本(text)和截取位数(num_chars),默认是从左第一个字符开始截取,在未指定第二个参数时,默认提取第一个字符。如下。


1.2 Right函数  则是反向截取,原理同left如下:


1.3 Mid函数  则是从中间某位置开始截取几位字符,因此有三个参数,分别为被截取文本(text),中间开始位置(start_num)和截取位数(num_chars),中间开始位置可以任意合理定义,因此这个函数可以代替leftright函数。


  有时字符串较复杂,我们不能确定某截取的字符在被截取文本的第几位时,需要使用find函数确定截取字符的位置。如下,查找不到相应字符的返回无效值。Mid函数是相对灵活的截取函数。


二、sas应用   以上为excel截取字符的相关函数,sasexcel某些函数意义是相同的如,如maxminfind等等,那么字符串截取相关的函数两者是否仍具有相同的规则?

2.1  leftright函数   Left函数在sas的定义为Left aligns a character expression.”返回的为左对齐字符串,即把开始空格移到末尾,字符串长度不改变,原来的leading blanks变为trailing blanks。所以在sasleft不再是左截取意义的函数,而是左对齐的函数(长度不改变,空格位置发生变化,当然在开始位置无空格的文本处理结果相同)。Right函数定义Right aligns acharacter expression.”,右对齐,尾部空格移到开始位置。


2.2 substr函数 

(1) sas中可用的截取直接相关函数,scansubstrScan函数在sas的定义为Returnsthe nth word from a character string.”,这个函数相对简单,具体见查看与帮助。Substr函数的应用类似于mid函数,具有三个参数,SUBSTR(character-expression,position-expression[, length-expression])灵活使用该函数也是需要结合find函数返回被截取字符首个字符的位置两个函数的应用同excel。有时我们截取固定长度字符,但其中可能包含不需要的字符,因此有时需要使用compress函数进一步去除不要的文本。

data test;

  input id :$3. exams &$30.;

 math=substr(exams,find(exams,'math','i',1),4);

 Enlish=substr(exams,find(exams,'english','i',1),7);

 cards;

 001 math Chinese

 002 English math chemistry

 003 Chinese phisics

 ;

run;


(2)Substr函数的而另一种应用就是字符串替换.substr函数放在等号右边为截取字符,而当substr函数放在等号左边为替换函数。

data test;

 input id :$3.exams &$30.;

 math=substr(exams,find(exams,'math','i',1),4);

 Enlish=substr(exams,find(exams,'english','i',1),7);

 substr(exams,find(exams,'Chinese','i'),7)='yuwen';

 cards;

 001 math Chinese

 002 English math chemistry

 003 Chinese phisics

 ;

run;


sas中字符还可以用替换函数:translatetranwrd,transtrn,详见帮助文档。

(3)Substr+compress,如完成一项工作甲乙丙丁用来不同的时间,如下:“kd”是两个修饰语,保留数字(keep digit)的意思,详见帮助文档。

data test1;

  input time :$12.;

 hour=compress(substr(time,1,2),,'kd');

 cards;

 5hours

 12hours

 ;

 run;


 掌握以上字符截取函数,在一段文本,就可以轻松自如的提取相关信息,软件间的某些应用也是相通的,融会贯通,善于总结,条条大路通罗马,结果只有一种,过程可以多样,在于掌握工具的程度。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
ActionScript菜鸟基础终极教程10
perl中substr的用法
php 字符串截取函数
php 去掉字符串的最后一个字符
Axure函数详解
(转载)substr: perl提取字符串
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服