
实验一SAS系统及数据集创建.docx
9页实验一 SAS 系统及数据集创建一、实验目的:了解SAS逻辑库组成,创建学习SAS数据集(数据文件,数据视窗)的命名,创建学习数据集导入导出,变量定义,变量选择,观测选择 等操作,缺失值插值二、 实验内容⑴用户用SAS数据步(DATA STEP)创建一个数据集的方法,DATA程序步的主要步骤:Data 所要创建的数据集名 ;Infile '读取的外部文件名’< FIRSTOBS=开始读入的行>< OBS=结束行〉;Input 变量 1 读入模式 变量 2 读入模式……;Run ;(2) 确定变量的读入模式共有四种: column 模式Input 变量 1 < $> 开始列<-结束列><.小数位> 变量2 …… ;例 1 :data testd1;infile 'e:dmydir\testdata.dat' firstobs=2 obs=4;input code $1-8 sex $9 bdata $10-16 income 17-23 .2;run;卑 VIEWTABLE; Work.Testdlcodeb d:ELt aincume198080802F010CT6920066.56298080803M21N0V7117800.67398080804F18DEC7019159.45上面的程序的数据步在临时库WORK中创建了弘S数据集work・testd1,而过程步PRINT则显示该数据集。
formatted 模式 格式一:Input 格式二:Input例 2 :<指针控制〉变量1输入格式<@|@@>…;<指针控制> (变量表) (输入格式表) <@|@@>DataInfileInputInputProc printtestd2 ;‘e:\dmydir\testdata.dat' ;code $ 1-8 sex $ 9 @ ; bdate $ 10-16 income $17-23 .2 ; data=testd2 ;Run;list 模式格式一:Input <指针控制〉变量1 <$><& <@|@@> ;格式二:Input <指针控制〉变量1 <:l&I〜〉<输入格式〉<@|@@>…; 例 3 :Data testd5 ;Infile ‘e:\dmydir\testdata2.txt' dsd;Input name & $15. age address 〜 $40. pc ;Proc print data=testd5 ;Run ;例 4 :data A600001(label="邯郸钢铁");input date yymmdd10. oppr hipr lopr clpr vol sums name $ hstocd $; format date yymmdd10. ; /*设定变量的输出格式 */label Date="日期I Date"; /*给变量加标签*/label Oppr="开盘价 I Open Price";cards; /*以下是数据表*/2001-1-16 8.08 8.4 8.05 8.35 45571 37683964 邯郸钢铁 6000012001-1-17 8.39 8.5 8.28 8.29 26345 22076348 邯郸钢铁 6000012001-1-18 8.32 8.4 8.21 8.26 17854 14844434 邯郸钢铁 6000014、增加变量、选择变量和观测创建新数据集例 5:class2 ; id test1-test5 ;DataInput average=mean(test1,test2,test3,test4,test5); test4=test1+test2+test3+test4+test5;Cards ;9808011001001001001009808029010090100909808038182838485Proc printdata=class2 ;Run ;Input id test1-test5 ; 输入数据 average=mean(test1,test2,test3,test4,test5); 求 test1 到 test5 的平均值 test4=test1+test2+test3+test4+test5;2010年10月12日星期二下午Q3时1Q分29□ -(无标题)idtestltest 2test 3test 4test5辽卡已rage980801100100100500100100980802901008047090949808038182834158583SAS系统Otis123* 1nr | 卜;例 6:Data class3 (drop=test1 test2 test3 test4 test5 ) ; Set class2 ;Proc print data=class3 ;Run;创建 class3 数据集,数据来源是 class2 中剔除 test1 test2 test3 test4 test5Hmd -(无标题】SAS系统2010年10戶Obsidaverage1980801100298080294398080383rrr例 7 :Data class4 ;Set class2 ;if average>=80 and (100=test1 or 100=test2 or 100=test3 or 100=test4 or 100=test5) ;Proc print data=class4 ; Run ;创建数据集class3,数据来源是class2中均值>=80,且test 1~test 5中有一值 为 100.三、习题1、下列为1975-1980年夏威夷岛莫纳罗亚火山每月释放CO2的数据,请将它生 成数据集H1,并剔除释放量小于330的观测,生成新的数据集H2。
330.45 330.97 331.64 332.87 333.61 333.55331.90330.05328.58328.31329.41330.63331.63332.46333.36334.45334.82334.32333.05330.87329.24328.87330.18331.50332.81333.23334.55335.82336.44335.99334.65332.41331.32330.73332.05333.53334.66335.07336.33337.39337.65337.57336.25334.39332.44332.25333.59334.76335.89336.44337.63338.54339.06338.95337.41335.71333.68333.69335.05336.53337.81338.16339.88340.57341.19340.87339.25337.19335.49336.63337.74338.36DataH1;Inp utid test1-test6;Cards ;330.45330.97331.64332.87333.61333.55331.90330.05328.58328.31329.41330.63331.63332.46333.36334.45334.82334.32333.05330.87329.24328.87330.18331.50332.81333.23334.55335.82336.44335.99334.65332.41331.32330.73332.05333.53334.66335.07336.33337.39337.65337.57336.25334.39332.44332.25333.59334.76335.89336.44337.63338.54339.06338.95337.41335.71333.68333.69335.05336.53337.81338.16339.88340.57341.19340.87339.25337.19335.49336.63337.74338.36Proc print data=H1;Run ;运行结果:co2time330.451975/1/1330.971975/2/1331.641975/3/1332.871975/4/1333.611975/5/1333.551975/6/1331.91975/7/1330.051975/8/1330.631975/12/1331.631976/1/1332.461976/2/1333.361976/3/1334.451976/4/1334.821976/5/1334.321976/6/1333.05 1976/7/1330.87 1976/8/1330.18 1976/11/1331.5 1976/12/1332.81 1977/1/1333.23 1977/2/1334.55 1977/3/1335.82 1977/4/1336.44 1977/5/1335.99 1977/6/1334.65 1977/7/1332.41 1977/8/1331.32 1977/9/1330.73 1977/10/1332.05 1977/11/1333.53 1977/12/1334.66 1978/1/1335.07 1978/2/1336.33 1978/3/1337.39 1978/4/1337.65 1978/5/1337.57 1978/6/1336.25 1978/7/1334.39 1978/8/1332.44 1978/9/1332.25 1978/10/1333.59 1978/11/1334.76 1978/12/1335.89 1979/1/1336.44 1979/2/1337.63 1979/3/1338.54 1979/4/1339.06 1979/5/1338.95 1979/6/1337.41 1979/7/1335.71 1979/8/1。
