SAS中compress函数的用法

问题描述:

SAS中compress函数的用法
如题,最好能写出一段程序说明一下compress函数的用法.
1个回答 分类:综合 2014-11-12

问题解答:

我来补答
COMPRESS 函数【功能】从一个字符串移除特定的字符Syntaxcompress (<source, chars><, modifiers>)source: 指定一个字符串来源
chars: 指定要删除或者保留的字符列表,需用引号
modifiers: 指定修饰符,不区分大小写,用来控制 compress 函数的具体功能.如:  a 增加(A - Z, a - z)到初始字符里(chars).  d 增加数字到初始字符里(chars).  f 增加下划线和字母(A - Z, a - z)到初始字符里(chars).  g 增加图形字符到初始字符里(chars).  k 不移除初始字符(chars)而是返回这些字符.  l 增加小写字母(a - z).  n 增加数字、下划线和字母(A - Z, a - z).  p 增加标点符号.  s 增加空格,包括空格、水平制表符、垂直制表符、回车符、换行符和换页符.  t 剪掉尾部空格.  u 增加大写字母(A - Z).  w 增加可印刷的字符.  X 增加十六进制字符  【详细】        1.只有source,移除空格.  2.只有source,chars时,从source中移除chars.  3. source ,chars,modifiers都有时,modifiers K决定保留还是移除.无K时,移除chars加上modifiers指定的.例如这两都是移除数字,COMPRESS(source, “1234567890”);COMPRESS(source, “d”);这两个是移除数字和加减号,COMPRESS(source, “1234567890+-”);COMPRESS(source, “+-”, “d”);Example 1移除空格  data _null_;
  a='ABC D ';
  b=compress(a);
  put b;
  run;  结果是ABCD.Example 2:移除小写字母 将修饰符设定为”l”,代表 lowcase,即将所有的小写字母加入到要删除的字符列表中;如不用修饰符”l”,也可以直接把所有a-z的小写字母列入要删除的字符串列表当中,效果一样,但显然前者比较简单;本例可以将所有小写字母和大写的”E”从指定的字符串中删除.data test; 
set have; 
char1=compress(char,"E","l"); 
run; 
data test; 
set have; 
char1=compress(char,"abcdefghijklmnopqrstuvwxyzE"); 
run;
Example 3:移除Tab  data _null_;
  x='1
  2
  3
  4
  5';
  y=compress(x,'s');
  put y;
  run;  结果是12345.  Example 4:保存字符  data _null_;
  x='Math A English B Physics A';
  y=compress(x,'ABCD','k');
  put y;
  run;  结果是ABA.

Reference:http://blog.sina.com.cn/s/blog_49040b720100qbv4.htmlhttp://tj.100xuexi.com/ExtendItem/OTDetail.aspx?id=55DCE428-12F0-4DF6-8270-F1148A367F7E
再问: 谢谢你的回答,这个在哪里看到过。。。就是看不懂才到这里发问的,能与几个简单的例子吗,这太长了。
再答: 额....太长....简单说来,就是compress是一个字符串函数,实现的功能就是字面意思“压缩;精简”。data _null_;
  a='ABC D ';
  b=compress(a);
  put b;
run;就是把空格“压缩”掉;如果给出<chars>选项,则会在<source>里面删除掉<chars>以达精简的效果。data test; 
set have; 
char1=compress(char,"abcdefghijklmnopqrstuvwxyzE"); 
run;这里就是删除小写字母和E。另外还有就是 给出modifier来控制语句的功能,data test; 
set have; 
char1=compress(char,"E","l"); 
run;可以达到跟前一个例子相同的结果。
剩下的一些不同的modifier的不同功能你看上面的回答就可以了。
 
 
展开全文阅读
剩余:2000
也许感兴趣的知识