SAS基础语法总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、DATA语句
DATA语句的作用是表明数据步的开始并给出数据集
的名称。
DATA语句的格式为:
DATA 数据集的名称;
数据集的名称必须以英文字母开始,最长不超过8个字符。
二、CARDS语句
CARDS语句的作用是与“;”呼应,标志数据行的开始与结束。
CARDS语句的格式为:
CARDS;
数据行
;
如果使用CARS语句,在CARDS的后面必须紧跟数据行,并且在一个数据步中最多只能使用一个CARDS语句。
三、INPUT 语句
INPUT语句的作用是描述输入记录中的数据,并把输入值赋给相应的变量。INPUT语句的格式为:
INPUT 数据的变量名、顺序及类型;
用INPUT语句是为了读取外部文件的数据或跟在CARDS语句后面的数据。
SAS默认用INPUT语句读取的是数值类型变量的值。若在变量后加’$’,则该变量为字符串类型变量。
为从一行读入多个观测值,应使用行保持符’@@’限制度数指针,使其保持在这一行上读数,知道数据读完为止。
例如:
Input x y@@;
Cards;
2 3 4 5 6 7 8
;
四、INFILE语句
Infile语句的作用是指明外部数据文件的名称,并从这个外部数据文件中读取数据。
INFILE语句的格式为:
INFILE ‘外部数据文件名’;
例如,在D盘上有一个名称为xiao.txt的数据文件,
其中数据排列为:
A 3.16
B 2.9 B 5.8 B 3 A 4.9 A 4.17
用INFILE语句读取数据的代码为:
Data ex;
Infile ‘D:xiao.txt’;
Input z$ x@@;
Proc print;
Run;
五、SET语句
SET语句的作用是按照指定的条件从指定的数据集中读取数据机那里新的数据集获奖两个数据集中的观测值纵向连接建立新的数据集。
SET语句的格式为:
SET 数据集名表;
例如,从数据集EX中读取数据建立新的数据集EX1,可编辑语句:
DATA EX1;
SET EX;
将两个数据集D1和D2中的观测值纵向连接建立新的数据集D3,可编辑语句:
DATA D3;
SET D1 D2;
六、MERGE语句
MERGE语句的作用是将两个数据集中的各个观测值横向合并建立新的数据集。
MERGE语句的格式为:
MERGE 数据集名表;
例如,将数据集D1与D2中的观测值横向合并建立新的数据集D3,可编辑语句:
DATA D3;
MERGE D1 D2;
RUN;
七、DROP语句
DROP语句的作用是指定不写到数据集中的变量。
DROP语句的格式为:
DROP 变量名表;
如果在DATA步中有DROP语句,那么DROP语句中一出现的变量的观测值被删除,未出现的变量的观测值仍保留在新的数据集中。
八、KEEP语句
KEEP语句的作用是指定要写到数据集中的变量。
KEEP语句的格式为:
KEEP 变量名表;
如果在DATA步4中有KEEP语句,那么KEEP语句中未出现的变量的观测值被删除,已出现的变量的观测值被保留在西你的数据集中。
九、IF语句
IF语句的作用是使SAS继续处理符合IF条件规定的观测值,因而所得到的数据集是原数据集的子集。
IF语句的格式为:
IF 条件表达式;
如果表达式的值为真,SAS处理当前的观测值,执行DADA步中的语句,如果表达式的值是假,SAS马上返回到DATA步的开始,不处理当前的观测值,不执行DADA步中的语句。
十、PROC语句
PROC语句的作用是指定需要调用的过程以及该过程的若干选择项。PROC语句的格式为:
PROC SAS的过程名;
例如,调用print过程,打印数据集ex的内容:
PROC print data=ex;
这里的data=数据集名,用来指定本过程所要处理的数据集名,如缺省则处理最新建立的数据集。在PROC步中,还必须确认一些最基本的信息,包括:
(1)处理的数据集名,格式为data=数据集名;
(2)所涉及的变量名,格式为var 变量名;
(3)分组处理的标志,格式为by 组变量名;
十一、CLASS语句
class语句的作用是在分析的过程中定义分类变量,再按分类变量的值分组进行数据分析。
Class语句的格式为:
CLASS 变量名;
CLASS语句对数据分析所起的作用类似于by语句,但是它们打印输出的格式不相同,并且by语句要求先对变量排序后才能使用。
十二、FREQ语句
freq语句的作用是规定一个变量,以它的值作为数据集中观测值出现的频数。
FREQ语句的格式为:
FREQ 变量;
假定某观测值的FREQ变量的值为n,在分析时,改数据集中这个观测值出现的频数便是n。
若n<1,则观测值不参加分析
若n不是整数,则自动取整。观测值的总数等于FREQ变量的和。
常用的SAS过程步
一、print过程
print过程可以打印一个SAS数据集中的全体或部分观测值,还可以打印数
值变量的综合或部分和。
print过程中经常使用的语句有:
proc print [选择项];
var 变量表;
by 变量表;
sum 变量表;
在proc print 语句中可能出现的选择项有
data=数据集名,如果省略这一选择,则打印最新建立的数据集中的数据。
sum语句被用来求变量表中诸变量的总和。
二、sort过程
SORT过程将SAS数据集中的观测值按一个或多个变量的值进行排序,以便
其他的SAS过程利用by语句对这些观测值进行分组处理,排序后的观测值存放在一个新的SAS数据集中或者代替原来的数据集。
在SORT过程中经常使用的语句有:
proc sort [选择项];
by 变量表;
在proc sort语句中可能出现的选择项有:
data=数据集名,用来说明要排序的数据集名,如果省略这一选择,则指定最新建立的数据集。
out=数据集名,用来说明要输出的数据集名,如果省略这一选择,则原来的数据集被输出的数据集替换。
sort过程默认按升序排列,若要按降序排列,在对应变量前增加选择项descending。
三、FORMAT过程
format过程可以对字符或数值变量定义一个所需要的输出格式,使data步以及含有format的语句的过程步中的变量都受到这一输出格式的限制。
通过proc FORMAT过程所定义的格式包括:
(1)将输出值转换成不同的值、数值可以变成字符,字符可以变成另外的字符。(2)使输出值保留一定的小数位,否则输出值将有8个小数位。
FORMAT过程由下列语句控制:
PROC FORMAT;
VALUE 格式名格式的定义;
为便于识别,格式名通常是原变量名加fmt
如果原变量是字符串,则应当在格式名前加字符串符号。
后面的过程中,如果涉及到某变量的输出格式,必须有语句:
FORMAT 变量名格式名