创建或重定义变量
Variable=expression
举例:
Zone = 14;
Type = 'home';
Zucchini = Zucchini * 10;
Total = Tomato + Zucchini + Peas + Grapes;
PerTom = (Tomato / Total) * 100;
使用SAS
函数创建变量
Variable=function-name(argument, argument,…..);
常用的SAS函数:
(1) 数值处理
INT(arg):换回指定变量的整数部分;
LOG(arg):对指定变量求自然对数;
LOG10(arg):对指定变量求以10为底的对数;
MAX/MEAN/MIN/SUM(arg,arg……):求指定变量中的最大值/均值/最小值/和;
ROUND(arg,round-off-unit):rounds to nearest round-off unit;
(2) 字符处理
LEFT(arg):左对齐指定字符变量;
LENGTH(arg):求指定字符变量的长度;
SUBSTR(arg,position,n):求指定字符变量的子串;
TRANSLATE(source,to-1,from-1,…,to-n,from-n)将‘source’中‘from’字符转换成‘to’;
TRIM(arg):将指定字符变量的后缀空格删除;
UPCASE(arg):将指定字符串中所有字母转换成大写形式
(3) 日期处理
DATEJUL(julian-date):将Julian日期转化为SAS日期形式;
DAY(date):
MDY(month,day,year):根据给定的年月日,生成一个日期型变量;
Month(date):返回给定日期的月份;
QTR(date):返回给定日期所属的季度;
TODAY():返回当前日期。
使用条件判断(IF-THEN
)语句
(1)
基本形式:
IF condition THEN action;
(2)
对观测进行分组处理语句:
IF condition1 THEN action1;
ELSE IF condition2 THEN action2;
ELSE IF condition3 THEN action3;
IF condition1 THEN action1;
ELSE IF condition2 THEN action2;
ELSE action3;
(3
)求给定数据集的子集
IF expression;
IF expression THEN DELETE;
使用日期型数据
SAS的日期是一个数据型变量,其值等于特定日期距1960年1月1日的天数。
(1)
设置默认的起始日期
Options YearCutOff=1950
(2)
SAS
的日期格式
使用RETAIN
和SUM
语句
在读入原始数据时,SAS在一个循环开始会将所有变量置为缺失值。这些变量可以在后面的INPUT语句或赋值语句中改变其取值,但当进入下一循环时,这些变量又会被置为缺失值。用RETAIN和SUM语句可以改变这一情况。如果一个变量出现在RETAIN语句后,该变量的值将会被保留至下一循环。SUM语句同样可以将一变量的值保留至下一循环。
(1) RETAIN语句
RETAIN variable-list; *
保留当前循环中变量的取值至下一循环
RETAIN variable-list initial-value; *
在每一循环开始时,将特定的初始值赋给变量。
(2)SUM 语句
Variable+expression
使用数组简化SAS
程序
数组是一组相同变量的集合。用户可以任意制定数组中变量的构成,但要求是数组中变量的类型必须一致,要么全是数值型,要么全是字符型。数组中的变量可以是数据集中已存在的变量也可以是用户新定义的变量。数组的使用方式为:
ARRAY name(n) $ variable-list;
数组本身并不存储在数据集中,它的定义仅存在于
DATA
步的执行过程。