sas学习系列09. 用set语句创建,修改数据集

sas学习系列09. 用set语句创建,修改数据集

ID:11493831

大小:228.27 KB

页数:10页

时间:2018-07-12

sas学习系列09. 用set语句创建,修改数据集_第1页
sas学习系列09. 用set语句创建,修改数据集_第2页
sas学习系列09. 用set语句创建,修改数据集_第3页
sas学习系列09. 用set语句创建,修改数据集_第4页
sas学习系列09. 用set语句创建,修改数据集_第5页
资源描述:

《sas学习系列09. 用set语句创建,修改数据集》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、09.用SET语句创建,修改数据集(一)用SET语句创建/修改数据集用SET语句,可以从已有数据集创建新数据集、增加新变量、修改数据集。注意:SET语句是一次一个观测值地,对已有数据集循环执行数据步创建新数据集。一、基本语法data新数据集名<(可选项)>;set已有数据集名<(可选项)>;示例(从数据集sales创建子数据集Friday,增加变量Total):datafriday;setsales;ifDay='F';Total=Popcorn+Peanuts;run;例1关于火车运汽车的数据(C:MyRawDataTrain.dat),包括发车时间、火车

2、上的汽车数、火车中的人数:数据被读入一个永久数据集trains.sas7bdat中,储存在“D:我的文档MySASFiles9.3”目录下。代码:data'c:MySASLibtrains';infile'c:MyRawDataTrain.dat';inputTimeTIME5.CarsPeople;run;由于每辆车的最大乘客数为6人,现在想知道一列火车上,平均每辆汽车的乘客数是多少,在一个新数据集中插入一列计算。代码:dataaveragetrain;set'D:我的文档MySASFiles9.3trains';PeoplePerCar

3、=People/Cars;run;procprintdata=averagetrain;title'AverageNumberofPeopleperTrainCar';formatTimeTIME5.;run;运行结果:二、用“drop(舍弃)和keep(保留)选项”选择变量(列)在data步中该选项以及SET语句,可以控制从原数集中读出的变量是否被写入要创建的数据集。基本形式:data新数据集名(keep=变量1…)(drop=变量1…);set旧数据集;注:keep和drop选项也可用于输出数据集时的可选参数;另外,rename选项可以对列变量重命名,示例:

4、dataanimals(RENAME=(Class=TypeHabitat=Home));setanimals;例2学生成绩数据(c:MyRawDatatests.txt),包含变量Name,Subject,Gender,Exam1,Exam2,Homework:读入数据,创建新数据集,舍弃变量Subject和Homework,重命名变量Name为StudentName.代码:dataTest;infile'c:MyRawDatatests.txt';inputName$1-9Subject11-12Gender$14Exam116-18Exam220-

5、22Homework$24;run;procprintdata=Test;title'Test';run;dataTest1(DROP=SubjectHomeworkRENAME=(Name=StudentName));/*用(KEEP=NameGenderExam1Exam2)也一样效果*/setTest;procprintdata=Test1;title'Test1';run;运行结果:三、SET语句中使用可选项FIRSTOBS=n和OBS=m选择观测值(行)表示只选择旧数据集中的第n条到第m条观测值。示例:dataanimalssetanimals(FIR

6、STOBS=101OBS=120);另外,选择观测值(行),也可用IF-THEN(条件)语句选出满足条件的观测值(行)。【见前文】(二)用UPDATE语句更新数据集的数据经常会遇到需要不断更新的数据集,比如银行账户每笔交易完需要更新有变动的数据。用UPDATE语句可以实现这一功能,需要主数据集和新数据集有共同变量(来匹配)。基本形式:data主数据集;update主数据集新数据集;by共同(匹配)变量;注:(1)主数据集和新数据集都需要事先按共同变量排好序,且共同变量必须具有唯一性;(2)新数据集中的缺省值不会改下主数据集的相应数值。例3医院有一份关于病人的主数

7、据(C:MyRawDataAdmit.dat)变量包括病人账户号、姓名、地址、出生日期、性别、保险代码、信息最后更新的时间:当有新病人或其他病人再进医院时,信息会被更新,比如,第一个病人的保险代码被更换了、最后一个病人的缺失数据被填补上、有新病人加入。更新数据文件(C:MyRawDataNewAdmit.dat)如下:将主数据存入一个名为patientmaster的永久数据集,读取新数据并排序,使用update语句将新数据更新到主数据中。代码:libnameperm'D:我的文档MySASFiles9.3';dataperm.patientmast

8、er;infile'c:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。