sas入门-笔记3 sas语言

3、proc过程步

  • 常用过程名 : Print means Sort Format , Contents
• 常用过程步语句 :Var,By,class,output,Where,Label,Format
[格式]
PROC <过程名> [DATA=<输入数据集>] [<选项>];
<过程步语句>/<选项>;
<过程步语句>/<选项>;
RUN;
1)常用过程语句
  • 输出列表过程PRINT
[作用] 
PRINT 过程来列出数据集的内容检查变量与值之间的对应是否正确,数据输入是否正确。
[语法格式]:
PROC PRINT [DATA = <数据集>] [NOOBS] [(OBS=n)];
[VAR <变量列表>;]
[WHERE <表达式>;]
[LABEL..]
[FORMAT..]
…….
RUN;
data:“DATA=选项”指定要列表的数据集名;
NOOBS选项:指定是否输出观测号;
(OBS=n):选项指前n项观测;
  • 排序过程SORT
[作用]
用BY语句对观测值进行分类前需要先用SORT过程排序。 SORT过程可以把数据集按某一个或若干个变量的次序进行排序。
[语法格式]:
PROC SORT [DATA = <数据集>] [OUT = <输出数据集名>];
[BY [DESCENDING ] <变量列表>;]
RUN;
OUT选项:指定的数据集为输出数据集,若省略OUT选项,则输入数据集与输出数据集
为同一个数据集。
BY语句中在一个 变量名前面 加上DESCENDING关键字表示此变量的排序是由大到。默认升序
  • 定义格式过程FORMAT
[作用]
设定数据的输出格式,对变量的不同值或不同范围的值设定不同的 “标签”来显示
[语法格式]:
其中格式名的命名规则与逻辑库名相同
PROC FORMAT;
VALUE <格式名> <范围1> = '<标签1>'
<范围2> = '<标签2>'
……;
RUN;
[应用]
先定义format格式,再引用格式:
定义:
        proc format;
        value 格式名 ‘范围1’=‘标签1’
        ‘范围2’=‘标签2’...;
       run;
引用:
        PROC 过程名 DATA=数据集名;
        过程语句;
        FORMAT 数据集中的变量名 格式名.;
        RUN;
*修改观测值;
proc format;
value $kidSEX '女'='girl' '男'='boy';
run;
proc print data=sashelp.class;
format sex $kidSEX.;
run;

*为数值型的值范围定义格式;
Proc format;
Value WClass low-<90="light" 
90-<120="med" 
120-high="heavy";
Run;
Proc print data=sashelp.class;
Format weight WClass.; 
Run;
  • 过程CONTENTS 
显示 SAS 数据集的描述部分
proc contents data=sashelp.class;
run;

返回

  

2)常用过程步语句
  • VAR语句
  [作用]
用来指定需要分析的变量 
[格式
VAR <变量名1> <变量名2> ... <变量名n>;
Proc print data=sashelp.class;
Var name age height;
Run;
VAR语句中的变量顺序,也是将来输出结果时的变量顺序。 通常VAR语句是放在过程的开始处。
  • CLASS语句
[作用]
某些SAS过程 中,用来指定一些分类变量。
[格式]
proc 过程名 data=数据集名;
class 变量名1 变量名2...;
run;

[案例]

*按男女分类统计class数据集中收入weight的均值等统计量。程序如下;
Proc Means Data=sashelp.class ; 
Class Sex ; 
Var weight;
Title “How to use CLASS statement”;
Run ;
  • BY语句
[作用]
在过程中一般用来指定一个或几个分类变量,根据这些分类变量值把观测分组,然后对每 一组观测分别进行本过程指定的分析
[格式]
BY <变量名1> <变量名2> ...;

注意:在使用带有BY语句的过程步之前要先用SORT过程对数据集排序,by语句跟sort过程是同一个变量

Proc Sort Data=sashelp.class;
By Sex ;

Proc Means; 
by Sex ; 
Var weight;
Title “How to use BY statement”;
Run ;

与class的区别:

CLASS语句使用时,不要求数据集事先按CLASS指定的变量排序;且进行分类计
算和分析后,输出的分类结果列在一张报表里。
BY语句在使用时,要求数据集事先按BY指定的变量排序,且输出的结果也按分
组列出多个报表。

  • OUTPUT语句
[作用]
将结果输出为一个数据集
[格式]
OUTPUT OUT = <输出数据集名> <关键字>=<变量名> <关键字>=<变量名>...;
其中用 OUT= 给出了要生成的结果数据集的 名字,用“关键字 = 变量名”的方式指 定了输出哪些结果 ( 关键字是如 MEANS 过程中的 MEAN VAR STD 那样的要 输出的结果名 ) ,等号后面的变量名指定 这些结果在输出数据集中的变量名称。 WHERE语句
[案例]
proc means data=sashelp.class;
Class sex; 
var weight;
output out=result2 n=n mean=meanh var=varh;
run;
  • where语句

[作用]

筛选数据集的一个行子集来进行分析
[格式]
WHERE <条件>;
使用方法、条件表达格式均同DATA步中的WHERE语句;
不同的是,在DATA步中可以用IF选择语句,但数据步中,不能使用IF选择语句。
  • FORMAT语句
FORMAT 变量名 输出格式;
PROC步中的FORMAT语句与DATA步中的FORMAT语句格式相同;
PROC步中的输出格式只在PROC指定的过程中有效;而DATA步中的输出格式定义了变量的输出属性, 其保留在数据集中;
FORMAT语句可以使用的输出格式:  
SAS 系统的输出格式;
PROC FORMAT 过程定义的输出格式
  • LABEL语句
LABEL <变量名>='<标签>' <变量名>='<标签>'...;

[案例] 

Data a;
Input num $ gender $ h w;
Cards;
101 M 1.72 61
102 F 1.60 50
Proc print label;
Label h=‘身高’ w=‘体重’;
Run;
Proc means ;
Label h=‘height’ w=‘weight’;
Run;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值