sas变量:
- 字符型变量。定义后家“$”以标识
- 数值型变量。
- 数值型常量
- 字符型常量
- 日期型常量 有单引号引起的日期,并在后家D,T,DT 分别代表日期,时间,日期时间。如:’12:37’T
sas运算符:
- 算术运算符:乘方**
- 比较运算符:
EQ(=),GT(>) , LT(<), NE(^=)不等于
GE(>=), LE(<=)
条件语句
- if then
if x<0 then x=-x;
- if then do: - end
if x<0 then do:
put 'x < 0';
x=-x;
end;
- if then else
注意;没有elseif
4.select
用法
select(条件表达式);
when(值1) 语句1;
when(值2) 语句2;
。。。
otherwise 语句;
end;
或者
select;
when(条件1) 语句1;
when(条件2) 语句2;
。。。
otherwise 语句;
end;
select语句
select;
when (a=1) x=a*10;
when (a=2);
when (a in (3.4.5)) x=a*100;
otherwise;
end;
循环语句
- do 循环
do 循环变量 = 初值 to 终值 by 步长;
循环体语句快;
end;
- do-while
do while(循环继续条件);
循环体语句款;
end;
- do - until 语句
do while(循环终止条件);
循环体语句款;
end;
input语句
- 列表模式
每个变量为一列数据,变量与变量之间通过分隔符分隔
缺失的数据需以”.”号表示
input 变量名[$][选项][@/@@];
变量名为输入各列的变量名
输入数据如果是字符型数据,需要在后面加“$”符号
选项参数可用于设置输入数据的格式
input语句缺省的变量分隔符为空格 因此其他分隔符需要设置:"INFILE 文件路径 dlm='分隔符'" 或者"INFILE CARDS dlm='分隔符'" 。
读取的字符串长度为8,超过8个需要通过length定义 "length 变量名$长度"
符号@表示一个数据行仅读取一个数据观测,系统输入完所有变量后会自动转入下一数据行,进行数据读取,默认值。 符号@@表示一个数据行可读取多个观测。
- 列模式
按列拍好,没有分隔符
INPUT 变量名1[$]起始列数-终止列数 变量名2[$]起始列数-终止列数...变量名n[$]起始列数-终止列数
infile
infile 文件路径[选项]
data test2_10;
infile '地址'
delimiter=',';
input x y @@;
put x= y=;
run;
file语句
file要和put联合使用
data test2_12;
file print; /* 结果输出到结果输出窗口*/
do i=1 to 5 by 1;
x=I*I;
put I= x=;
end;
run;
length
length 变量名[$] 变量长度;
label 语句
label 变量名=标签;
data test2-15;
length city$ 10;
label city='城市' zip='编码';
input city$10 zip;
cards;
birmnigham 35201
run;
keep
drop
where