第三章 SAS数据集的整理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 面向SAS数据集的加工 data生成数据集名; Set 读入数据集名; 数据加工语句; Run;
Data dt01; Set dt01; Bonus=salary*0.08; Run;
将数据集sasuser.Building复制为work.Building
对变量的选择 • Dorp和keep语句
求和语句
变量名+表达式;
Data retire; Input amount @@; Retain year 1995; Year+1; Total +amount; Cards; 500 1000 . 2200 2700 ; Run;
条件语句
If 表达式 then SAS语句; Else SAS语句;
对观测值的选择
• If 语句
SAS程序中的表达式
• 算术运算符 运算 含义 ** 幂次运算 * 乘号 / 除号 + 加号 减号
• 常用比较运算符
运算 =或eq ^=或ne > < >= <= In 含义 等于 不等于 大于 小于 大于或等于 小于或等于 为其中之一 例 a=3 a ne 3 a>3 a<3 a>=3 a<=3 age in(11,14,16)
Total = sum百度文库of qtr1-qtr4);
Data _null_; Y = sqrt(2); Put y=; Run;
Retail 语句 Retail 变量名 <初值> 变量名 <初值> Data retire; Input amount @@; Retain year 1994 total 0; Year=year+1; Total=total+amount; Cards; 500 1000 1500 2200 2700 ; Run;
大小写转化Lowcase(自变 量),upcase(自变量)
data adj; set sasuser.Admitjune; *input id name sex age date height weight actlevel fee; *proc print; total = sum(age,height,weight); if upcase(sex) ='f' then fee = sum(height,weight)*20; else if sex='M' then fee = sum(height,weight)*30; proc print; format date yymmdd10.; run;
第三章 数据加工
1.变量和观测值的选择 2.用SAS语句建立新的变量 3.SAS函数 4.循环语句和数组 5.写入SAS数据集和外部文件 6.使用Analyat菜单加工SAS数据集
1.变量和观测值的选择
• • • • Set 语句的使用 对变量的选择 对观测值的选择 按变量值对数据集排序
Set 语句的使用
Do -end
If 表达式 then Do; 语句组1; End; Else Do; 语句组2; End;
• Length 变量名1<$>长度 变量名2<$>长 度……..$;
• 读入外部源数据时进行加工 Data 数据集名; Infile 读入源数据文件名; Input 输入变量列设定; 数据加工语句; Run;
• 例 data dt01; infile 'D:\lecsas\basev8\dst\imptdt01.dat‘; Input ID $ salary Actlevel $ Sex $; Bonus= salary*0.08; Run; Proc print; Run;
data adj; set sasuser.Admitjune; *input id name sex age date height weight actlevel fee; *proc print; total = sum(age,height,weight); if sex='f' then fee = sum(height,weight)*20; else if sex='m' then fee = sum(height,weight)*30; proc print; format date yymmdd10.; run;
2.用SAS语句建立新的变量
• 赋值语句 • 条件语句
赋值语句
一般形式 变量名=表达式
简单赋值语句 使用SAS函数 函数名(自变量1,自变量2,…) 自变量可以是常量,变量,函数,表达式
Data donate; Input idnum $ Qtr1-qtr4; Total = sum(qtr1, qtr2, qtr3, qtr4); Cards; 1351 10 12 14 20 482 22 14 6 25 5112 17 17 17 . 5132 10 25 8 12 ; Run;
• 逻辑运算符
运算 含义 AND或& 交运算,要求两个表达式同时成立 OR或| 并运算,要求两个表达式至少有一个成立 ^ 否定运算,将成立的(不成立的)转为不成立的 (成立的)
• where语句
• 读入数据集选项obs= 和 firstobs=
按变量值对数据集排序
• Proc sort data = 数据集名 <out = 输出数据 集名>; • By <Descending>变量名列<Descending> 变量名列…; • Run;