加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

SAS 中使用 Compress 函数删除或保留字符串中特定字符作者:bao_dan_dan

(2014-05-11 15:57:00)

     SAS 中的 compress() 函数主要用来删除字符串中的特定字符,不少SAS用户都以为这个函数只是用来删除空格,其实 compress() 函数的功能远不止如此,它可以删除或保留字符串中的特定字符。本文就几个小例子,介绍一下该函数的具体用法。

1. compress() 函数的基本形式

Syntax

compress (<, chars><, modifiers>)

Arguments

source: 指定一个字符串来源
chars: 指定要删除或者保留的字符列表,需用引号
modifiers: 指定修饰符,不区分大小写,用来控制 compress 函数,常用的修饰符及意义见本文的最后部分

2. compress() 函数应用举例

已有数据集 have:

data have;

input char $200.;

cards;

Elek dot Me Yuewei-Liu HOME-027-8765 4321

 ;

run;

例1. 删除空格:

     可以直接省去第二和第三个 Arguments,也可以明确将空格加入到字符串列表中,也就是第二个 Argument。

 

data test;
set have; 
char1=compress(char);
run; 
等同:
  data test; 
 set have; 
 char1=compress(char," "); 
 run;

例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;

例3. 保留指定的字符:

    字符列表的定义与前面类似,只需将”K”或”k”写入修饰符,或者在字符串列表中加入所有数字。本例为保留所有数字和”HOME“中的字符。

                          data test; 
                          set have; 
                          char1=compress(char,"HOME","dk"); 
                          run; 
同:
                         data test; 
                         set have; 
                         char1=compress(char,"HOME1234567890","k"); 
                         run;
结果是:MEHOME1234567890

附:常用的修饰符及其意义

a/A 所有拉丁字母,包括 a-z A-Z d/D 所有数字 f/F 下划线和所有拉丁字母 i/G 忽略要删除或保留字符的大小写 k/K 保留字符串列表中的字符 l/L 所有小写拉丁字母 n/N 下划线,数字和所有拉丁字母 s/S 定位符,如空格、tab等 t/T 去掉第一和第二个 Arguments 里的尾部空格 u/U 所有大写拉丁字母
  出自另外一篇文章:
    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 增加十六进制字符)。

0

阅读 收藏 喜欢 打印举报/Report
前一篇:常用随机函数
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有