scan函数: scan(s,n,"char")表示从字串string中以char为分隔符提取第n个字串
功能(function):从字符表达式s中搜取给定的n个单词
语法(syntax)
1.scan(s,n) n为正数时,从字符s末尾提取n个字符
2.scan(s,n) n为负数时,从字符s开始提取n个字符
3.scan(s,n<,list-of-delimiters>)
如果指定分隔符,则只会按照该分隔符提取。
如果不指定,则按照常用的分隔符拆分,默认分隔符为:空格 . < ( + & ! $ *) ; ^ - / , % | 等之一或组合
注意事项:
1.如果缺失指定的生成变量的长度,系统默认长度为200.
2.如果|n|=0或大于字符s的长度,则该函数返回空格。
例如:
data a; arg='ABC.DEF(X=Y)'; word=scan(arg,3); /*输出X=Y*/ put word; run; data b; arg='ABC.DEF(X=Y)'; word=scan(arg,-3); /*输出ABC*/ put word; run; data c; arg='ABC.DEF(X=Y)'; word=scan(arg,-20); /*输出为空*/ put word; run; data d; input str $ & 22.; a=scan(str,1,' '); b=scan(str,2,' '); put a b ; /*abcd efghijklmn */ cards; abcd efghijklmn ; run;