[转载]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 所有大写拉丁字母
SAS 中使用 Compress 函数删除或保留字符串中特定字符 from Yuewei Liu. Subscribe by RSS Reader or Email
- October 3, 2010 -- SAS 字符串连接方法 (1)
- October 10, 2010 -- SAS 中处理大小写的几个函数 (2)
- September 4, 2010 -- Get specific variable name according to observation in SAS (1)
- January 9, 2011 -- SAS 练手: 根据要求查找缺失值 (2)
- January 6, 2011 -- 如何让 SAS 在 Output 窗口打印时不自动分页 (2)
- December 14, 2010 -- SAS 中使用中文变量名 (0)
- December 12, 2010 -- Calculate Moving Average Using Proc Expand in SAS (1)
- November 9, 2010 -- 通过 Google Talk 使用 Chatterous 群组聊天服务 (2)
- November 5, 2010 -- 我表示 灰常无奈 (5)
- October 25, 2010 -- SAS 练手: 根据多个变量的值删除特定观测 (7)
- September 29, 2010 -- SAS 读取含多个分隔符的数据 (1)
- September 20, 2010 -- SAS 中使用 Unamed Pipe 获取文件名 (5)
来源: http://elek.me/remove-specific-characters-from-strings-using-compress-function-in-sas.html
使用bShare,全球中文互联网最强大的内容分享工具!現在就加入bShare吧!