SAS字符操作
在sas数据清洗与整理过程会接触到两类型数据,字符型和数值型,并且sas只会以这两种形势出现。不会像R一样出现列表、数组、矩阵、数据框、日期等多种形势。Sas中关于数值型的操作大家并不陌生,所以今天特意聊一聊如何在sas中对字符进行操作的问题。
先简单说一说一些常用的函数:
1、截取字符串 substr(a,2,3) 截取a,从2开始取3位
2、替换字符串 tranwrd(a,"a1","a2") 替换a中的a1为a2
3、删除部分字符串 compress(a,"a1") 删除a中的a1
4、trim() 去掉字符串尾部空格,如果字符串为空,则返回一个空格,改变字符串的物理存储长度、字符长度
5、trimn() 去掉字符串尾部空格,如果字符串为空,则返回一个空字符串,改变字符串的物理存储长度、字符长度
6、left() 把字符串开头的空格移到尾部,没有改变字符串的物理存储长度,但字符长度被改变
7、strip() 去掉字符串开头和结尾的所有空格,改变字符串的物理存储长度、字符长度
8、cat() 与||作用类似,保留首尾全部空格
9、catt() 连接之前会去掉各字符串尾部空格,相当于连接符结合trim()使用
10、cats() 连接之前会去掉首尾全部空格,相当于连接符结合strip()或trim(left(字符串))使用
11、catx() 连接之前会去掉首尾全部空格,在字符串之间加上一个指定的字符串
12、LENGTH(string):返回字符长度,只有尾部空格不计数,空字符串与连续空格视为1
13、LENGTHN(string):返回字符长度,只有尾部空格不计数,空字符串与连续空格视为0
14、LENGTHC(string):返回字符长度,对字符长前后的空格计数,对连续空格计数,空字符串是为1
15、LENGTHM(string):返回存储的字节长度,对字符串前后的空格计数,对连续空格计数,空字符串视为1
16、Anyalnum(参数,n) /*从n开始计算出现第一个字符或者数字的位置是多少
17、Anyalpha(参数,n)/*不输入n时返回第一个字符的位置,输入n时从n开始第一次出现字符的位置
18、anydigit( 参数,n)/*不输入n时返回第一个数字的位置,输入n时从n开始第一次出现数字的位置
19、anyspace(参数,n)/*不输入n时返回第一个空格的位置,输入n时从n开始第一次出现空格的位置
20、Position=find(string,substring<,modifiers,startpos>):若substring在string中被找到,返回其第一次出现的位置
21、scan(string,n,“参数”)/将字符按照参数分块,在从其中提取出第n个字符。
在进行数据筛选时也可匹配字符关键词
Data a;
Set a1;
Where var like “%字符%”;
Run;
数据分析咨询请扫描二维码