SAS: scan函数的修饰语(modifier)说明,另外类比compress function;countw function和countc函数与scan函数的用法比较
SCAN(string, count <, character-list <, modifier>>)
count为负,从右往左数。或者使用b修饰语,将从右向左;
character-list,默认如果超过一个字符,则每个字符都是一个分隔符。如果使用“K”修饰语,则除了list中列出来的字符,其他字符都是分隔符;
I修饰语,忽视分隔符的大小写;
M修饰语,接连两个相同的分隔符,或者首尾的分隔符,都会被当作单个分隔符处理。如果没有M,两个相同的分隔符会被当作一个分隔符。和O修饰语一起在循环语句中使用,更有效率。
R修饰语,去掉选出的子字符串左右两边的空格。
Q修饰语,忽略在成对引号里面的分隔符。
如果QR一起使用,则删除返回字符串左右空格,如果以引号开始,则也删除一层引号。
D修饰语,character-list列为空,modifier为D,则将所有的数字作为分隔符,如果是KD,则将除数字外其他字符作为分隔符。
A修饰语,character-list列为空,modifier为D,则将所有的字母作为分隔符。
Compress(var,’.’ ,’kd’)压缩,k是除掉列出的其他都压缩。所以除了数字和 ’.’,其他都被压缩。
Compress(var,’.’ ,’d’)压缩,没有k修饰语。所以数字和 ’.’ 被列出来了,都应该被压缩。
Countw函数,与scan函数用法相似,以分隔符来数string可以被分为几个部分。
Countc函数,书写格式相同,作用不同,查找charlist中每个字符在string中一共出现的次数,其中v修饰语表示查找charlist之外(包括空格)的字符数量,与t一起使用,则可以忽视尾部空格的数量(中间空格仍然存在被计数)。