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

[转载]SAS 中使用 Compress 函数删除或保留字符串中特定字符 ...

(2014-01-01 03:35:11)
标签:

转载

分类: 03SAS数据处理

SAS 中使用 Compress 函数删除或保留字符串中特定字符 | Yuewei Liu


之前曾介绍过字符串连接中如何通过 trim(), strip() 等函数来删除字符串之前或之后的空格,但此类函数并不能处理字符串中间的空格。SAS 中的 compress() 函数主要用来删除字符串中的特定字符,不少 SAS 用户都以为这个函数只是用来删除空格,其实 compress() 函数的功能远不止如此,它可以删除或保留字符串中的特定字符。本文就几个小例子,介绍一下该函数的具体用法。

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

Syntax

compress (<, chars><, modifiers>)

Arguments

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

2. compress() 函数应用举例

已有数据集 have:

data have;
        input char $20.;
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;

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

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  所有大写拉丁字母

 

 

http://elek.me/wp-content/plugins/add-to-any/icons/printfriendly.png中使用 Compress 函数删除或保留字符串中特定字符 ..." />Share/Email/Bookmark
Related Posts


来源: http://elek.me/remove-specific-characters-from-strings-using-compress-function-in-sas.html

使用bShare,全球中文互联网最强大的内容分享工具!現在就加入bShare吧

0

  

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

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

新浪公司 版权所有