ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:22.43KB ,
资源ID:10180738      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10180738.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SAS基础编程.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

SAS基础编程.docx

1、SAS基础编程第三课 SAS编程 第一部分一 SAS 变量的定义/* 直接赋值 */data newvar;a1 = 100; a2 = 1.2e-5; /* 数值型变量的科学表达法 */b = 0100; /* 数值型变量前面的0不起作用 */c = new;d = “NEW” ; /*字符型变量输入时是什么,值就是什么 */f = “ NeW “;name1 = “Toms”;name2 = Toms;date1 = 1jan2006d; /* 直接定义日期 */date2 = 01jan04d;time1 = 9:25t; /* 直接定义时间 */time2 = 9:25:19t;dti

2、me = 18jan2003:9:27:05amdt; /* 定义日期时间 */if begin=01may04:9:30:00dt then end=”31dec90:5:00:00”dt;run;proc print; run;/* 自定义变量 */* 产生一个取值为 1 到 100 的变量 */data int; do i = 1 to 100; /* 此处 do end 为循环语句, i 为循环指标,可取任何符号 */ a = i; output; end;run;proc print; run;/* 简洁版 */data int; do a = 1 to 100; output; e

3、nd;run;proc print; run;/* 通过各种运算定义变量 */SAS 算子 用于比较: = (EQ) 等于, = (NE) 不等于, = (NE) 不等于, (GT)大于, =(GE)大于等于, nights then calendar=Check schedule; else calendar=No problems; if guide=Lucas and nights7 then guide=Torres; if landcost=1500 then price=High ; /* 定义新变量 price */ else if landcost=700 then price

4、=Medium; else price=Low; if events/nights2 then pace=Too fast; else pace=OK; if (city=Paris or city=Rome) and (guide=Lucas or guide=DAmico) then topic=Art history; if landcost gt 1500 or landcost/nights gt 200 then level=Deluxe; if upcase(city)=MADRID then guide=Duncan; /* 使用 upcase 函数 */ if guide 5

5、 then do; weeks = 3 + year/5; group = Qualified; end; /* 这里 do end 不是循环语句,是大括号 */ else do; yrsleft = 5 - years; group = Not Qualified; end;run;proc print; run;/* Investment data */data investment; begin=01JAN1990d; end=31DEC2009d; capital = 0; do year=year(begin) to year(end); /* 函数 year 给出时间变量中的年的值

6、 */ capital = Capital + 2000 + .07*(Capital+2000); output; end; put The number of DATA step iterations is _n_; run; proc print data=investment; format Capital dollar12.2; run;data investment; begin=01JAN1990d; end=31DEC2009d; do year=year(begin) to year(end); Capital + 2000 + .07*(Capital+2000); /*

7、自动给出初值和更新变量值 */ output; end; put The number of DATA step iterations is _n_; run; proc print data=investment; format Capital dollar12.2; run;/* another example */ data a;input x;datalines;50002500;run;data b;set a;a = normal(0); /* normal 函数产生一个正态随机数,0 表示取现在的时间作为 seed */exit=10;do i=1 to exit;y=x*nor

8、mal(0);if y25 then i=exit;output;end;run;proc print; run;三SAS的分组 - By语句/* by 语句的定义 */data zipcodes; input state $ 1-2 city $5-14 street $15-25 zipcode 30-34; cards;AZ Tucson Domenic Ln 85730FL Miami Trade Ave 33133FL Miami Thomas Ave 33133FL Lakeland French Ave 33801FL Miami Nervia St 33146AZ Tucson

9、 Gleeson Pl 85730FL Miami Rice st 33133FL Miami Corsica St 33146FL Lakeland Egret Dr 33809FL Miami Surrey Dr 33133;run;proc print; run;/* 将同一个州的观测值放一起, by 语句的变量为 state */proc sort data = zipcodes out=state; by state; run;proc print; run;/* 进一步将州内的城市排序, by 语句的变量为 state city*/proc sort data = zipcodes

10、 out=city; by state city; run;proc print; run;/* 所以变量都排序, by 语句的变量为 state city zipcode street */proc sort data = zipcodes out=city; by state city zipcode street; run;proc print; var state city zipcode street; run;/* 将 state 按逆序排列 */proc sort data = zipcodes out=city; by descending state city zipcode

11、 street; run;proc print; var state city zipcode street; run;/* 将 state 和 city 都按逆序排列 */proc sort data = zipcodes out=city; by descending state descending city zipcode street; run;proc print; var state city zipcode street; run;/* 将数据按 zipcode 分组打印 */proc print; var state city zipcode street; by state

12、 city zipcode; run;/* proc sort 的另一个选项 */data dupobs; input country $ 1-11 tourtype $ 13-24 nights landcost vendor $; cards; Spain architecture 10 510 World Japan architecture 8 720 Express Switzerland scenery 9 734 World Switzerland scenery 9 734 World France architecture 8 575 World Ireland scener

13、y 7 558 Express New Zealand scenery 16 1489 Southsea Italy architecture 8 468 Express Greece scenery 12 698 Express ; run; proc print data=dupobs; title Data Set DUPOBS; run; proc sort data=dupobs out=fixed noduplicates; by country; run; proc print data=fixed; title Removing a Duplicate Observation

14、with PROC SORT; run; /* 确定由 by 语句定义的组的边界 */* 当使用 proc sort, 系统会自动生成 first.varible 和 last.variable */proc sort data=zipcodes; by state city; run;data _null_; /* 不生成数据,但使用 data step */set zipcodes;by state city;if _N_=1 then put Grouped by state city; /* 将信息写到 log 窗口 */put;put _N_= state= city= first.

15、state= last.state= first.city= last.city= ;put; /* 打一个空行 */run;/* 计算每组的工资和 */data salaries;input Department $ Name $ WageCategory $ WageRate;datalines;BAD Carol Salaried 20000BAD Elizabeth Salaried 5000BAD Linda Salaried 7000BAD Thomas Salaried 9000BAD Lynne Hourly 230DDG Jason Hourly 200DDG Paul Sa

16、laried 4000PPD Kevin Salaried 5500PPD Amber Hourly 150PPD Tina Salaried 13000STD Helen Hourly 200STD Jim Salaried 8000;proc print data=salaries; run;proc sort data=salaries out=temp; by Department; run;data budget (keep=Department yearlywage Payroll);set temp;by Department;retain payroll; if WageCat

17、egory=Salaried then YearlyWage=WageRate*12;else if WageCategory=Hourly then YearlyWage=WageRate*2000;/*SAS sets FIRST.variable to 1 if this is a new department in the BY group*/if first.Department then Payroll=0; payroll = payroll + YearlyWage;/*SAS sets LAST.variable to 1 if this is the last depart

18、ment in the BY group*/* if last.Department; */ /* 只需取一组中最后一个观测值 */run;proc print data=budget;format Payroll dollar10.;title “Annual Payroll by Department”;run;/* 求身高的平方和 */DATA DEMO; INPUT GENDER $ HEIGHT WEIGHT AGE;DATALINES;M 68 155 23F 61 99 20F 63 115 21M 70 205 45M 69 170 .F 65 125 30M 72 220 4

19、8;Run;PROC PRINT; RUN:data a; set DEMO end = done; /* done 是一个指示变量,对最后一个观测值为 1,其他为 0 */ retain N sum 0; N = N + 1; Sum = sum + height*2; if done then do;mean = sum/N; output; end;run;proc print; run;data donkey; input year 1-4 pres $ 6-29 vicepres $ 31-55 result $ 60-64; cards; 1920 James M. Cox Fra

20、nklin D. Roosevelt lost 1924 John W. Davis Charles W. Bryan lost 1928 Alfred E. Smith Joseph T. Robinson lost 1932 Franklin D. Roosevelt John N. Garner won 1936 Franklin D. Roosevelt John N. Garner won 1940 Franklin D. Roosevelt Henry A. Wallace won 1944 Franklin D. Roosevelt Harry S. Truman won 1948 Harry S. Truman Alben W. Barkley won 1952 Adlai E. Stevenson John J. Sparkman lost 1956 Adlai E. Stevenson Estes Kefauver l

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1