02数据集的建立与编辑文档格式.docx

上传人:b****5 文档编号:20474408 上传时间:2023-01-23 格式:DOCX 页数:12 大小:20.83KB
下载 相关 举报
02数据集的建立与编辑文档格式.docx_第1页
第1页 / 共12页
02数据集的建立与编辑文档格式.docx_第2页
第2页 / 共12页
02数据集的建立与编辑文档格式.docx_第3页
第3页 / 共12页
02数据集的建立与编辑文档格式.docx_第4页
第4页 / 共12页
02数据集的建立与编辑文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

02数据集的建立与编辑文档格式.docx

《02数据集的建立与编辑文档格式.docx》由会员分享,可在线阅读,更多相关《02数据集的建立与编辑文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

02数据集的建立与编辑文档格式.docx

\BOOK\CHILD.DAT’;

从指定文件中读取数据

INPUTIDX1$X2X3X4X5;

指定SAS数据集的变量名、类型及读取数值顺序

RUN;

结束SAS程序****

3.从已建立的SAS数据集中产生新的数据集

例如要将child中的男孩的资料组成新的SAS数据集,SAS程序如下。

DATAMALES;

建立名为MALES的SAS数据集

SETCHILD;

从CHILD中读取数据

IFX1=’M’THENOUTPUT;

如果X1的值为M则将该记录输出到MALES中;

这里用“IFX1=’F’THENDELETE;

”有同样的效果

RUN;

结束SAS程序

要从child中分别产生男孩和女孩的资料组成的两个SAS数据集,SAS程序为:

DATAMALESFEMALES;

SETCHILD;

IFX1=’M’THENOUTPUTMALES;

ELSEOUTPUTFEMALES;

****

2.1.3将dBASE类数据库文件转换为SAS数据集

1.DBF过程

格式:

PROCDBFDB4=filenameout=dataname;

例2.2将C盘VFP目录中的EMPLOYEE.DBF文件转为SAS数据集,SAS过程为

FILENAMEJI‘C:

\VFP\EMPLOYEE.DBF’;

指定数据库文件的逻辑名

PROCDBFDB4=JIOUT=ABC;

用DBF建立SAS数据集ABC

*****

注意:

Foxpro的数据库用COPYTO文件名TYPEFOXPLUS命令产生dbf文件

2.在SAS窗口中的FILE菜单中选择IMPORT项。

2.1.4永久型SAS数据集的建立及其调用

1.意义:

将数据永久地存放在指定的目录下,供日后调用

2.永久型数据集的建立

例2.3将上节建立的临时SAS数据集ABC转为永久型数据集存放在C盘的SAS目录中。

LIBNAMEAA‘C:

\SAS’;

定义C盘SAS目录的逻辑名为AA

DATAAA.ABC;

在上述目录中建立名为ABC的永久型数据集

SETABC;

该数据集中的数据来自当前的临时数据集ABC

运行上面的程序即可在SAS目录下建立名为ABC.SD2的永久型SAS数据集。

3.永久型数据集的调用

例2.4将当前目录中名为AA.SD2的永久型数据集的内容打印出来。

SAS程序为:

LIBNAMECHEN‘‘;

用逻辑名CHEN来代替当前目录

PROCPRINTDATA=CHEN.AA;

用两级文件名来指定要打印的文件

例2.5从AA.SD2中读取数据,在A盘中建立另一个永久型数据集STUDENT.SD2。

LIBNAMESA‘‘;

用逻辑名SA来代替当前目录

LIBNAMESB‘A:

\’;

用逻辑名SB代替A盘根目录

DATASB.STUDENT;

用两级文件名SB.STUDENT来指定在A盘建立永久型数据集STUDENT

SETSA.AA;

指明数据来源为当前目录中的AA文件

2.2DATA步

2.2.1DATA语句

1.DATA语句的功能表示DATA步的开始,并给出创建的数椐集名

2.DATA语句的格式

DATA[SASdataset][(options)];

这里的中括号表示可选项(下同)

例2.6假设有一个包含21个变量的数据集,变量名为YEAR和X1-X20,在当前目录下有一文件名为AAA的纯文本文件包含了这些变量的具体测量值,通过下面的过程可以形成含有不同变量的多个SAS数据集。

DATAYEAR82(KEEP=YEARX1-X5)YEAR83(KEEP=YEARX6-X20)

YEAR84(DROP=X13);

INFILE‘AAA’;

INPUTYEARX1-X20;

2.2.2INPUT语句

1.INPUT语句的功能

2.INPUT语句的一般格式

INPUT[Specification];

·

Specifition有四种方式,并且四种方式可以结合使用,常用的两种方式为:

(1)列表输入方式(自由格式输入)

(2)格式:

INPUTVariable[$][&

]……;

例:

DATAONE;

ATTRIBNAMELENGTH=$12;

规定变量NAME存放12个字符

INPUTNAME$&

AGE;

规定变量NAME存放带有空格的字符

CARDS;

LiHua20

SunLi-ning25

;

(2)格式输入方式

INPUTVariable[formatmodifier]informat;

特点:

格式输入给出相应变量的输入格式,用以说明数据类型及字段长度。

例如:

INPUTNAME&

$10SEX$WEIGHT4.2;

规定变量WEIGHT的数值长度带小敉点共四位,小数点后最多二位.

LiLiF159

WangDaZhiM35.1

(3)行保持符(续行符)

在INPUT语句结束前输入@@

数据行可有多个记录的数据项

DATA;

INPUTNUMBER$AGE@@;

110112120112210515321710数据列表中有四个记录。

2.3SAS数据集的整理和浏览

为使原始数据满足统计分析要求,需对数据作预处理,通过对SAS数据集的整理来实现(即通过使用相应SAS语句耒实现)..查看整理后的数据集要用FSVIEW过程。

2.3.1赋值语句

赋值用于计算一个SAS表达式,并将表达式的值赋给变量。

变量=SAS表达式;

X=a+b

A=a+b

T=sum(ofX1-X5)

若表达式中含有缺失值,则结果可能为缺失值。

2.3.2累加语句

累加变量+SAS表达式

A+(-B)

n+1

2.3.3DROP语句(删除变量语句)

DROP变量名表;

DATAPARTS;

INPUTNAME$PARTAPARTBX1-X5;

数据列表对应的变量

TEST=PARTA+PARTB;

TEST为新的变量

DROPPARTAPARTB;

PARTS数据集中将不包括PARTA和PARTB

CARDS;

…………(数据列表)

2.3.4KEEP语句(保留变量语句)

一般当要删除的变量较少时用DROP语句,要保留的变量较少时则用KEEP语句。

KEEP变量名表;

DATAAVERAGE;

INPUTNAME$SCORE1-SCORE20;

数据列表对应的变量

AVG=MEAN(OFSCORE1-SCORE20);

新变量AVG为平均分

KEEPNAMEAVG;

AVERAGE中只有NAME和AVG两个变量

………(数据列表)

KEEP语句和DROP语句只能在DATA步中使用,在PROC步中保留或删除变量必须使用数据选择项KEEP=、DROP=。

2.3.5IF语句(条件语句)

意义

格式1:

IFexpressionTHENstatement;

格式2:

IFexpressionTHENstatement1;

ELSEstatement2;

IFX=3THENY=X;

IFXTHENY=X;

IFXTHENDELETE;

IFSTATUS=’OK’ANDTYPE=3THENCOUNT+1;

IFX=0THEN

IFYNE0THENPUT‘XZERO,YNOZERO’;

ELSEPUT‘XZERO,YZERO’;

ELSEPUT‘XNOZERO’;

IFANS=9THENDO;

ANS=.;

PUT‘INVALIDANSWERFOR‘ID=;

END;

ELSEDO;

ANS=ANS1;

VALID+1;

2.3.6DO-END(循环语句)

意义:

DO;

DO组;

END:

IFX>

5THENDO;

Y=X*10;

PUTX=Y=;

Z=X+3;

条件语句规定仅当x>

5时DO组才被执行,其余情况下DO组将被跳过而执行后面的赋值语句z=x+3;

DO循环变量=初值[TO终值BY循环增量];

[一组SAS语句];

end;

DOCOUNT=2,3,5,7,11,13,17DO组对COUNT规定的每个值执行,共七次

DOMONTH=’JAN’,’FAB’,’MAR’;

DO组执行三次

DOI=1TO10;

DO组执行10次

DOI=1TOEXIT;

EXIT事先已赋值

2.3.7其他SAS语句

1.DELETE语句(删除语句)

IFsex=’m’thendelete;

2.OUTPUT语句(输出到数据集语句)

SETONE;

IFSEX=’M’THENOUTPUTMALES;

ELSEOUTPUTFEMALES;

上面的程序将one数据集中的记录按性别分组重新组织新的数据集。

3.COMMENT语句(注释语句)

*exp1_1;

\*Theprogramisexp1_1*\;

2.3.8SAS数据集的浏览

使用FSVIEW过程。

格式:

PROCFSVIEWDATA=DATASET;

例:

LIBNAMELI‘C:

\SAS\TEXT’;

PROCFSVIEWDATA=LI.AAA;

2.4SAS数据集的排序、连接与合并

2.4.1SAS数据集的排序

SORT过程格式:

PROCSORTOPTIONS;

BY[DESCENDING]VARIABLE…;

PROCSORTDATA=TOTAVGOUT=S4;

指明排序数据集与输出数据集

BYDESCENDINGTOTALSEX;

排序规则为按TOTAL降序和SEX升序

PROCPRINT;

显示排序后的数据集内容

例子inc‘a:

exp2_4’

2.4.2数据集的连接

格式

DATANEWDATASET;

SET[SASDATASET[(DSOPTIONS)]……];

[BY[DESCENDING]VARIABLE……[NOTSORTED]];

RUN;

(1)变量相同

例2.7:

DATAHAVG;

SETMAVGFAVG;

两数据集直接竖向对接例

(2)变量不同:

例2.8

DATASCORE1;

DATASCORE2;

INPUTNAME$SEX$MATHPHYENGCHE;

INPUTNAME$SEX$MATHPHY;

CARDS;

CHENF80859065ZHANGM7889

LIM75896075WANGF9587

LINM81836780;

RUN;

DATASS;

SETSCORE1SCORE2;

PROCPRINT;

运行结果如下:

OBSNAMESEXMATHPHYENGCHE

1CHENF80859065

2LIM75896075

3LINM81836780

4ZHANGM7889..

5WANGF9587..

(3)按某变量值大小有序排列的连接

PROCSORTDATA=SCORE1OUT=S1;

BYPHY;

PROCSORTDATA=SCORE2OUT=S2;

DATASSS;

SETS1S2;

运行结果为:

OBSNAMESEXMATHPHYENGCHE

1LINM81836780

2CHENF80859065

3WANGF9587..

4LIM75896075

5ZHANGM7889..

2.4.3数据集的合并

1.一对一合并(无BY语句合并)

两个数据集横向一对一合并,用MERGE语句但不用BY语句.合并后的观测数为两数据集中的最大观测数,而相同变量的取值为MERGE语句中一个数据集的观测值.

例2.10:

DATANUM;

INPUTNUM@@;

9500195003950049500295005

;

DATAME;

MERGENUMSSS;

OBSNUMNAMESEXMATHPHYENGCHE

195001LINM81836780

295003CHENF80859065

395004WANGF9587..

495002LIM75896075

595005ZHANGM7889..

3.匹配合并(带有BY语句合并)

例2.11:

DATAPERSON;

DATALANGUAGE;

INPUTNUMBERNAME$SEX$AGE;

INPUTNUMBERLANGUAGE$SCORE;

10001ZHANGF2010001ENGLISH90

10003LIM2210002JAPANESE85

10002WANGM201001RUSRIAN79

10001LINF21;

PROCSORT;

PROCSORT;

BYNUMBER;

DATARESULT;

MERGEPERSONLANGUAGE;

PROCPRINTDATA=RESULT;

运行结果为:

OBSNUMBERNAMESEXAGELANGUAGESCORE

11001.RUSRIAN79

210001ZHANGF20ENGLISH90

310001LINF21ENGLISH90

410002WANGM20JAPANESE85

510003LIM22.

INC‘A:

EXP2_11’

2.5常用的SAS运算符和SAS函数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 城乡园林规划

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

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