登录
首页精彩阅读SAS字符操作
SAS字符操作
2017-03-29
收藏

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;


数据分析咨询请扫描二维码

客服在线
立即咨询