5.SAS格式及格式化输入

上传人:z*** 文档编号:243024473 上传时间:2024-09-14 格式:PPT 页数:73 大小:1.03MB
返回 下载 相关 举报
5.SAS格式及格式化输入_第1页
第1页 / 共73页
5.SAS格式及格式化输入_第2页
第2页 / 共73页
5.SAS格式及格式化输入_第3页
第3页 / 共73页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Slide,73,SAS,格式与格式化输入,SAS,的输入输出格式,SAS,的变量包含数值型和字符型变量。,SAS,系统对数值型、字符型和日期时间数据提供了许多输入、输出格式。,用户可以用,FORMAT,过程来定义自己的格式。,什么是格式,(Format),?,Format,is an instruction the SAS System uses to display or write each value of a variable.,SAS,有输入格式和输出格式。,输入输出格式,原始数据值,SAS,变量的值,格式化的,SAS,变量值,Informat,dollar10.,Format,comma8.,548,231,25JAN2004,16095,01/25/2004,Informat,Date9.,Format,MMDDYY10.,$548,231,548231,Informat,(输入格式),Format,(输出格式),输入格式,输入格式是,SAS,系统用来读入数据值的一个指令。,输入,格式形式,INFORMAT,.,选项说明:,通用规则:,所有输入格式必须包含一个点(.)作为名字的一部分;,对于省略,W,和,D,值的输入格式,使用系统缺省值。,输入格式使用方法,INPUT,语句;,INPUT,函数;,INFORMAT,或,ATTRIB,语句;,INPUT,语句,最常用情况,即格式化输入,格式化输入方式是,INPUT,语句读取非标准数据的唯一方法。即在变量名后面规定输入格式。这种输入方式不仅给出了该输入数据所对应的类型,而且给出了输入数据所在列的长度。,语句格式:,INPUT, variable informat. ;,INPUT, (variable-list) (informat-list) ;,INPUT, (variable-list) ( informat.);,其中:,n*,规定在输入列表中后面的输入格式重复,n,次。,INPUT,语句,例中,从第,1,列开始以,$8.,格式读入变量,name,,第,14,列开始以,yymmdd10.,格式读入变量,birth,右移,1,列,从第,25,列开始以,5.1,读入变量,height,例如,,data,a;,input,name,$11.,14,birth,yymmdd10.,+,1,height,5.1,;,cards,;,Wanghuacong 1995/06/09 178.5,Zuosha 1996/12/15 165.8,;,proc,print,;,run,;,INPUT,函数,例,,,字符,转换,数值,data,;,x=,39.8,;,y=input(x,4.1,);,put,x= y=;,run,;,例中,,INPUT,函数将字符变量,X,的值,39.8,,通过输入格式,4.1,转换为一个数值,39.8,,赋给变量,Y,,因此,Y,为数值型变量,例,,数值转换为字符时会产生不正确结果,例中,产生的结果为255, 不正确;,除非增加输入格式的长度,如,y=input(x, $15.);,此时,最常用的做法是使用,put,函数,,而不是,input,函数,data,;,x=,2557898,;,y=put(x, $8.);,put,y;,run,;,data,;,x=,2557898,;,y=input(x, $8.);,put,y;,run,;,用,INFORMAT,语句或,ATTRIB,语句,例,,DATA,步中用,INFORMAT,语句,data,a;,input,name,$11.,birth height;,informat,birth,yymmdd10.,height,5.1,;,cards,;,Wanghuacong 1995/06/09 178.5,Zuosha 1996/12/15 165.8,;,proc,print,;,run,;,输入格式,1,、数值型变量输入格式,几个常用的格式:,w.d,:读入标准数值数据,COMMAw.d,:用于数据中包含逗号,(,),的数据形式,DOLLARw.d,:用于数据前面有美元符,($),的数据形式,说明:,w,:宽度,表示数值域所含的列数。小数点占一列。,d,:小数位数。,d,可以省略。,例如:,5.2,,表示该变量的数据占,5,列,其中后两位是小数位。,注意:一定要弄清数据占据的列数,否则极易出错。,data,a;,input,x,comma7.,y,comma7.,;,cards,;,12,002 34,231,2,210 21,311,;,run,;,proc,print,;,run,;,OUTPUT:,Obs x y,1,12002,34231,2,2210,21311,例,1.,有如下两列数据,数据中包有逗号,请建立一个,SAS,数据集,变量为,x,、,y,。,12,002 34,231,2,210 21,311,数字,7,是怎么来的?,data,a;,input,x,comma7.2,y,comma7.4,;,cards,;,12,002 34,231,2,210 21,311,;,run,;,proc,print,;,run,;,OUTPUT:,Obs x y,1,120.02,3.4231,2,22.10,2.1311,例,2.,有如下两列数据,其中第一列后两位数字为小数,第二列后,4,位为小数,例如第一个数据,12,002,读入后应为,120.02,。请建立一个,SAS,数据集,变量为,x,、,y,。,12,002 34,231,2,210 21,311,data,a;,input,x,dollar8.,y,dollar8.,;,cards,;,$12,002 $34,231,$2,210 $21,311,;,run,;,proc,print,;,run,;,OUTPUT:,Obs x y,1,12002,34231,2,2210,21311,例,3.,有如下两列数据,数据中包有,$,和逗号,请建立一个,SAS,数据集,变量为,x,、,y,。,(,例如,$12,002,读入后应为,12002,),$12,002 $34,231,$2,210 $21,311,data,a;,input,x,dollar8.2,y,dollar8.4,;,cards,;,$12,002 $34,231,$2,210 $21,311,;,run,;,proc,print,;,run,;,OUTPUT:,Obs x y,1,120.02,3.4231,2,22.10,2.1311,例,4.,有如下两列数据,其中第一列后两位数字为小数,第二列后,4,位为小数,例如第一个数据,$12,002,读入后应为,120.02,。请建立一个,SAS,数据集,变量为,x,、,y,。,$12,002 $34,231,$2,210 $21,311,$,w.,输入格式,读入标准字符数据。,在读入字符值之前,$,w.,输入格式清除字符值开头的空格。,$,w.,输入格式把一个点(.)转换为空格,因为它把一个点看作缺失值。,输出结果:,xyz,uvw,2.,字符型变量输入格式,例,,读入数据时,清除数据开头空格并将(.)转换为缺失值。,Data a,;,input,name,$5.,;,cards,;,xyz,.,uvw,;,options,nocenter;,proc,print,noobs,;,run,;,$,CHARw.,输入格式,读含有空格的字符数据。$,CHARw.,输入格式除了不清除字符值开头的空作格外,它等同于标准的$,w.,输入格式。,例,,保留开头和结尾的空格。,data,;,input,name,$char10.,;,cards,;,xyz,.,uvw,;,options,nocenter;,proc,print,noobs,;,run,;,INPUT,语句采取自由格式输入时,,INFORMAT,或,ATTRIB,语句中不能使用$,CHAR.,输入格式,因为,SAS,把空格看作数据行中数值间的分隔符。,输出结果:,xyz,.,uvw,$CHARw.,:读取包含空格的连续字符,例,5.,下面是一些人名,请将其读入到一个变量,NAME,中,注意:姓和名之间有一个空格,建立的,SAS,数据集如右边的形式。,Bill Clinton,George Bush,Tony Blair,Saddam Hussein,Vladimir Putin,Obs,name,1,Bill Clinton,2,George Bush,3,Tony Blair,4,Saddam Hussein,5,Vladimir Putin,data a;,input name $,char14.,;,cards;,Bill Clinton,George Bush,Tony Blair,Saddam Hussein,Vladimir Putin,;,proc print;,run;,Obs name,1 Bill Clinton,2 George Bush,3 Tony Blair,4 Saddam Hussein,5 Vladimir Putin,如果将,char14.,去掉,语句改为:,input name $;,结果是什么样的呢?,日期和时间数据的存储,SAS,采用,数值,存储日期和时间形式的数据。,在默认情况下,,,SAS,系统以,0,代表,1960,年,1,月,1,日,0,时,。,其它日期,在,SAS,系统中被存储为,与该日期相差的天数,。,例如,,,1960,年,1,月,3,日,在系统中存为,2,。,2004,年,1,月,25,日,在系统中存为,16095,。,注意,:,为了使数值型变量显示日期形式,必须使用日期型的输出格式,同样地为了以日期形式输入日期必须使用日期型的输入格式。,3,、日期数据输入格式,日期数据的读入通常需要运用日期型的格式,日期时间输出格式,日期型数据的输入输出格式大部份是相同的,下面是几个常用的:,该例中日期数据的形式是什么样的?,例,6.,有如下的日期数据,请建立一个,SAS,数据集,EX6,存储,并以日期的形式显示出来。,1Jan2002,03 Jan 2003,15/May/2004,12-FEB-2005,17*May* %2006,1*OCT*2007,30%sep%/2008,DD MMM YYYY,故选择,DATEw.,输入格式,data,b;,input,dd,date15.,;,format,dd,date9.,;,cards,;,1Jan2002,03 Jan 2003,15/May/2004,12-FEB-2005,17*May* %2006,1*OCT*2007,30%sep%/2008,;,proc,print,;,run,;,Obs,dd,1,01JAN2002,2,03JAN2003,3,15MAY2004,4,12FEB2005,5,17MAY2006,6,01OCT2007,7,30SEP2008,例,7.,有如下的日期数据,请建立一个,SAS,数据集,EX7,存储,并以日期的形式显示出来。,01312002,03122003,5 13 2004,4 21 2005,5 25 2006,1/2/2007,3-24-2008,该例中日期数据的形式是什么样的?,MM DD YYYY,故选择,MMDDYY10.,输入格式,01312002,03122003,5 13 2004,4 21 2005,5 25 2006,1/2/2007,3-24-2008,data,b;,input,dd,mmddyy10.,;,format,dd,mmddyy10.,;,cards,;,01312002,03122003,5 13 2004,4 21 2005,5 25 2006,1/2/2007,3-24-2008,;,proc,print,;,run,;,Obs,dd,1,01/31/2002,2,03/12/2003,3,05/13/2004,4,04/21/2005,5,05/25/2006,6,01/02/2007,7,03/24/2008,输出格式,选项说明:,输出格式,是,SAS,系统用来输出数据值的一个指令。,输出格式形式,FORMAT .,通用规则:,所有,输出格式必须包含一个点(.)作为名字的一部分;,省略,W,和,D,的值时,使用系统的缺省值;,无论,怎样规定输出格式中的小数位,输出格式都不会影响存贮的数据值;,规定,的输出格式宽度太窄小时,对字符格式截去右边的字符,对数值格式转换为,BESTw.,的格式;,使用,一个不协调的输出格式时,,SAS,系统首先试着使用其它类型的类似格式。如果行不通,将输出一个错误信息在,SAS,日志,。,输出格式类型,数值输出格式;,字符输出格式;,日期时间输出格式;,使用,FORMAT,过程创建的自定义输出格式。,输出格式使用方法,DATA,步中用,FORMAT,或,ATTRIB,语句;,PROC,步中用,FORMAT,或,ATTRIB,语句。,PUT,语句;,PUT,函数;,FORMAT,或,ATTRIB,语句,最常用方式,数据步中使用,data,a;,input,x,comma7.,y,comma7.,;,format x y dollar8.;,cards,;,12,002 34,231,2,210 21,311,;,run,;,proc,print,;,run,;,过程步中使用,format,语句,proc,print,;,format x comma7. y dollar8.;,run,;,过程步中使用,attrib,语句,proc,print,;,attrib,x y,format,=,comma7.,;,run,;,PUT,语句,在,PUT,语句中使用输出,格式,data,;,x=,1145.32,;,put,x,dollar10.2,;,put x comma8.2;,run,;,结果,为,:,$1,145,.,32,1,145.32,PUT,函数,PUT,函数对于将数值转换为字符,或者改变字符输出格式,data,a;,birth=,16095,;,birthtext=put(birth,yymmdd10.,);,put,birthtext= ;,put,birth=;,run,;,LOG,窗口输出结果,birthtext=2004-01-25,birth=16095,常用数值变量输出格式,例子,data,a;,x=,123456789,;,y=,1230000,;,z=,12345,;,put,x,best7.,/ y,best7.,/ z,best7.,;,put,x,8.2,;,put,x,11.2,;,put,x,12.2,;,put,y,dollar8.,;,put,y,dollar10.,;,run,;,Log,窗口输出结果,-+-+-+,1.235E8,1230000,12345,1.2346E8,123456789.0,123456789.00,$1230000,$1,230,000,可以看到,SAS,会根据指定的输出宽度选择最合适的输出形式,以满足指定的宽度。例如,,put y dollar8.;,由于数据本身有,7,位,因此输出时仅添加了一个,$,符号,而未添加千分位的逗号,(,,,),,见倒数第二输出。,自定义格式,使用,PROC,FORMAT,过程进行格式的自定义。,PROC FORMAT ;,INVALUE,格式名 格式,;,VALUE,格式名 格式,;,其中,,invalue,定义输入格式,,value,定义输出格式。,自定义输入格式,语法,PROC,FORMAT;,INVALUE ,格式名 定义的输入格式,;,RUN;,格式名,:应符合,SAS,的命名要求,(,但不能超过,8,个字符,),,注意最后一个字符不能是数字。,定义的输入格式,:,原始值,=,格式化的输入值,当格式化的输入值为字符时,这字符型输入格式,名字前加,$,否则为数值型输入格式,如,,invalue sexinf “F”=1 “M”=2;,invalue $ sexicf “F”=“Female” “M”=“Male”;,Invalue,语句自定义输入格式,2355 S O O S,5889 2 2 2 2,3878 C E E E,4409 0 1 1 1,3985 3 3 3 2,0740 S E E S,2398 E E C C,5162 C C C E,4421 3 2 2 2,7385 C C C N,例,下列数据中的字母,O,S,E,C,N,分别赋值为,4, 3, 2, 1, 0,,使用输入格式读入数据,并全部转化为数值。,(5,个变量,),PROC FORMAT,;,INVALUE,scoref,O,=4,S,=3,E,=2,C,=1,N,=0,;,RUN;,首先建立输入格式,(,数值型,等号右边为数值,),使用自定义的格式,scoref,data,a;,input,id x1,scoref.,+,1,x2,scoref.,+,1,x3,scoref.,+,1,x4,scoref.,;,cards,;,2355 S O O S,5889 2 2 2 2,3878 C E E E,4409 0 1 1 1,3985 3 3 3 2,0740 S E E S,2398 E E C C,5162 C C C E,4421 3 2 2 2,7385 C C C N,;,proc,print,;,run,;,输出结果,Obs id x1 x2 x3 x4,1 2355 3 4 4 3,2 5889 2 2 2 2,3 3878 1 2 2 2,4 4409 0 1 1 1,5 3985 3 3 3 2,6 740 3 2 2 3,7 2398 2 2 1 1,8 5162 1 1 1 2,9 4421 3 2 2 2,10 7385 1 1 1 0,PROC FORMAT;,INVALUE,$ sexf,M=Male F=Female,;,RUN;,建立字符型输入格式,data,b;,input,sex :,$sexf.,age;,cards,;,F 25,m 22,f 23,F 21,M 23,;,proc,print,;,run,;,输出结果:,Obs sex age,1 Female 25,2,m,22,3,f,23,4 Female 21,5 Male 23,小写字母未正确替换,!,PROC FORMAT;,INVALUE,$ sexf (upcase),M=Male F=Female,;,RUN;,添加选项,upcase,,重新运行,data,b;,input,sex :,$sexf.,age;,cards,;,F 25,m 22,f 23,F 21,M 23,;,proc,print,;,run,;,输出结果:,Obs sex age,1 Female 25,2,Male,22,3,Female,23,4 Female 21,5 Male 23,小写字母正确替换,!,自定义输出格式,语法,PROC,FORMAT;,VALUE,自定义输出格式名字 定义的格式,;,RUN;,自定义输出格式名字,:应符合,SAS,的命名要求,(,不能超过,8,个字符,),,注意最后一个字符不能是数字。,定义的格式,:,原始值,=,格式化的输出值,注:,原始值为数值型,则为数值型格式;否则为字符型格式,此时格式名前需加,$,符号,如:,value testf,1-5=“1-5” 6-=10”;,value ynf 1=“,是,” 2=“,否,”;,value $grpf “A”=“,试验组,”,“B”=“,对照组,”;,例,8.,下面是我们班“问卷调查”资料的部份数据。变量,sex,的赋值是:,1=Male,2=Female,变量,Band46,的赋值是:,A=,增加, B=,不变, C=,减弱 ,请建立一个,SAS,数据集,EX8,,对变量,sex,、,Band46,进行格式化,。,data qespart;,input id$ sex height weight band46$;,cards;,cnw1r01215449C,cnw1r02116964B,cnw1r04116967A,cnw1r05215350B,cnw1r06216050A,cnw2r02215646A,cnw2r03117362B,cnw2r04116857B,cnw2r05215545B,;,run;,proc print;,run;,Obs,id,sex,height,weight,band46,1,cnw1r01,2,154,49,C,2,cnw1r02,1,169,64,B,3,cnw1r04,1,169,67,A,4,cnw1r05,2,153,50,B,5,cnw1r06,2,160,50,A,6,cnw2r02,2,156,46,A,7,cnw2r03,1,173,62,B,8,cnw2r04,1,168,57,B,9,cnw2r05,2,155,45,B,PROC FORMAT,;,VALUE,sexfmt,1=Male,2=Female,;,VALUE,$bandfmt,A=,增加,B=,不变,C=,减弱,;,RUN;,首先建立相应的输出格式,上面建立了两种类型的输出格式:,一种是,数值型,的,即,sexfmt,,要求,=,号左边为数值型数值或区间,如上面的,1,、,2,为数值;,另一种是,字符型,的,即,$bandfmt,,,$,表明该格式是字符型,,要求,=,号左边为字符或字符区间,如,A,、,B,、 ,C,。,DATA,qesfmt;,SET,qespart;,FORMAT,Sex,sexfmt.,Band46,bandfmt.,;,RUN,;,PROC,Print,;,RUN,;,Obs,id,sex,height,weight,band46,1,cnw1r01,Female,154,49,减弱,2,cnw1r02,Male,169,64,不变,3,cnw1r04,Male,169,67,增加,4,cnw1r05,Female,153,50,不变,5,cnw1r06,Female,160,50,增加,6,cnw2r02,Female,156,46,增加,7,cnw2r03,Male,173,62,不变,8,cnw2r04,Male,168,57,不变,9,cnw2r05,Female,155,45,不变,格式化后打印输出的数据,对变量进行格式化,PROC FORMAT,;,VALUE,heighfmt,LOW - 150,= 150,150- 155,= 150-155,155- 160,= 155-160,160- 165,= 160-165,165- 170,= 165-170,170- 175,= 170-175,175- =180,;,RUN;,利用格式对连续型变量的离散化分组,(,频数表编制,),例,9.,对,“问卷调查”资料中的身高编制频数表,组距取,5CM,,小于,150,为第一组,,150-155,为第二组,在数据步中运用格式:,Format height heighfmt.;,加标签,:,label height =,身高,;,Obs,class,id,身高,weight,1,34,cnw1l01,175-180,70.0,2,34,cnw1l02,175-180,70.0,3,34,cnw1l03,155-160,47.0,4,34,cnw1l04,160-165,48.0,height,Frequency,Percent,CumulativeFrequency,CumulativePercent,150-155,19,14.18,19,14.18,155-160,22,16.42,41,30.60,160-165,38,28.36,79,58.96,165-170,20,14.93,99,73.88,170-175,21,15.67,120,89.55,175-180,10,7.46,130,97.01,=180,4,2.99,134,100.00,打印数据集的内容,(,部份,),用,FREQ,过程生成的频数表,SAS system Help,“,索引”,输入“,FORMAT procedure”,列表方式输入,简单列表方式输入,INPUT, variable ;,调整列表方式输入,INPUT, variable ;,列表方式输入使用条件,输入数据值之间至少有一个空格隔开;,用小数点表示表示缺失值;,字符型值的默认长度为,8,个字节,也可以用,LENGTH, ATTRIB, INFORMAT,语句规定长度;,数据必须是字符数据或标准的数值数据。,列表方式输入格式修饰符,:,当原始数据是以空格为分隔符时,要想对变量值长度不一致的变量规定统一长度就必须用到该格式修饰符。,规定变量值是从非空格列中读取, 直到第一次遇到以下三种情况之一,该变量值的读取过程才结束:,下一个空格列,达到变量预先设定的长度,数据行结束,例,,,空格为分隔符时,对变量值长度不一致的变量规定统一长度。,data,;,Input Univ : $12. Plc $ Zip ;,cards;,MIT Boston 100023,TsinghuaUniv Beijing 100084,;,例中,第一个观测变量,Univ,的值为,MIT(,只读,3,个字符,因遇到空格而结束,),第二个观测值为,TsinghuaUniv(,得到先前定义的变量长度,12),。如果只对变量,Univ,规定长度,而不加格式修饰符,(:),,在读入第一条记录时就会出错,如果不对变量,Univ,规定长度,读入第二条记录时就会只读入,Tsinghua,,而不是预先要读入的,TsinghuaUniv,,这是因为,SAS,默认的字符变量的存储长度就是,8,个字节。,Univ,Plc,Zip,MIT,Boston,100023,TsinghuaUniv,Beijing,100084,加格式修饰符,(:),不加格式修饰符,(:),Univ,Plc,Zip,MIT,Boston,1,00023,.,&,读入包含空格的数据,因为空格是列表读入方式默认的分隔符,所以,如果要读入的数据值本身包括空格时就必须用此格式符。,注意:数据项之间至少两个空格,例,,空格为分隔符时,字符型输入值嵌有空格。,data,;,input name ,cards;,Jiang Zhu 20,Annie Zheng 31,I. Altman 60,;,run,;,例中,第一个观测,name,中,Jiang Zhu (,包含一个空格,),,第二个观测为,Annie Zheng,(包含一个空格,),。分隔符为两个空格。,规定读入字符值时保留引号。此选项只在,INFILE,语句中与选项,DSD,一起使用时才有效。,DSD,选项的,4,个功能:,将默认分隔符改为逗号;,对于连续的两个分隔符,中间按缺失值处理;,将字符变量值的引号去掉;,对引号里的分隔符按字符来对待。,所以,INFILE,语句中的,DSD,选项自动把数据记录的分隔符设置为逗号,并且读入数据之前,把字符数据中的引号去掉,若加上“,”就会保留数据中的引号。,理解,DSD,和“,”的作用,例,,,读入字符值时保留引号,data,topics2;,infile datalines dsd;,input speakers : $15. title $40. location ,datalines;,Song, Credit Derivatives, Room 329,Zhu, Credit Risk Management, Room 406,;,proc,print,;,run,;,可以看出,“,”,包含“,:”,选项的功能。例中,虽然,title,变量的长度是,40,,而观测值得长度都不到,40,,仍然可以得到正确结果。所以“,”,包含 “,:”,的功能。,把,speakers,后面的“,:”,改成了“,”,也可以。例如:,data,topics2;,infile datalines dsd;,input speakers $15. title $40. location ,datalines;,Song, Credit Derivatives, Room 329,Zhu, Credit Risk Management, Room 406,;,proc print;,run;,输出窗口信息,:,Obs speakers title location,1 Song Credit Derivatives Room 329,2 Zhu Credit Risk Management Room 406,但是,若把,title,后成的“,”,改成 “,:”,,引号就因为,dsd,选项的存在被去掉。如下,:,data,topics2;,infile datalines dsd;,input speakers : $15. title :$40. location ,datalines;,Song, Credit Derivatives, Room 329,Zhu, Credit Risk Management, Room 406,;,proc,print,;,run,;,输出窗口信息,Obs speakers title location,1 Song Credit Derivatives Room 329,2 Zhu Credit Risk Management Room 406,列方式输入,列输入方式是用来读入严格按列排好的标准数据,INPUT,变量名,开始列,-,结束列, ;,条件:同一变量原始数据值在相同的列中,原始数据是,标准的数值格式或一般字符格式,特点:,1.,可以按任意顺序读入数据,2.,字符型数据中间可以有空格,3.,可以重复读取原始数据中的某一部份,4.,空格和小数点都作为缺失值处理,5.,忽略开始和结尾部分的空格,按列读入,data,a;,input ques $,1,-,17,age,18-20,gender$,21,-,26,city $,27,-,34,;,cards;,I am here for you 23male,大 连,Are you there 26female,重 庆,haha male,哈尔滨,yes i am here 30female,;,proc,print,;,run,;,手机号码信息分解,手机号码一编码规则一般是:,YYY-XXXX-ZZZZ,,其,YYY,为号段;,XXXX,一般为所在地区编码;,ZZZZ,为对应的个人识别编号,。说明,:,移动,:,134-139,、,150,、,151,、,152,、,157,、,158,、,159,、,188,联通,:,130,、,131,、,132,、,155,、,156,电信,:,133,、,153,、,180,、,189,1357851051X,1508311759X,1327313520X,1556443719X,1804346016X,1513441713X,1308279203X,1897876466X,可重复读入,data,b;,input,x1 1-3 x2 4-7 x3 $8-11 x4 $1-11;,cards,;,1357851051X,1508311759X,1327313520X,1556443719X,1804346016X,1513441713X,1308279203X,1897876466X,;,proc,print,;,run,;,X4,重复读入前面的数据到一个变量中,列数为变量长度,命名方式输入,如果数据行中含有变量的名字,后面跟着等号和变量的值,读取数据时应该使用命名输入方式。,语句格式,INPUT, variable= ;,INPUT,variable= start-column ;,INPUT, variable=informat. ;,其中:,variable=,规定用于,INPUT,语句读入的变量名。,例,,,使用命名输入格式。(数据中的名字与变量名相同),data,a;,input date yymmdd10. fullshr stkcd=$ lstknm=$ ;,cards;,2001-01-18 1486553100 stkcd=600001 lstknm=,邯郸钢铁,;,run,;,后面变量的不采用命名输入格式,读入数据时出错。,data,a;,input date yymmdd10. stkcd=$ lstknm=$ fullshr;,cards;,2001-01-18 stkcd=600001 lstknm=,邯郸钢铁,1486553100,;,run,;,Log,窗口显示出错信息:,缺失,值表示及读取,可以,表示缺失值的字符有:,空格,小数点,MISSING,语句规定的,字符,空格,表示缺失值的数据,适合,列方式读入,例如,,SUSAN,第一次测验缺席,,BIL,第二次测验缺席,以空格表示缺失,data,a;,input,name $,1,-,5,test1,7,-,8,test2,10,-,11,;,cards,;,ann,92 96,susan,84,bill,81,;,run,;,打印结果:,Obs name test1 test2,1 ann 92 96,2 susan . 84,3 bill 81 .,小数,点,表示缺失值的数据,适合,自由方式,读入,例如,,SUSAN,第一次测验缺席,,BIL,第二次测验缺席,以小数点表示缺失,data,a;,input,name,$ test1,test2,;,cards,;,ann,92 96,susan,. 84,bill,81 .,;,run,;,打印结果:,Obs name test1 test2,1 ann 92 96,2 susan . 84,3 bill 81 .,其它特殊符号,表示缺失值的数据,适合,自由方式,读入,+,Missing,语句,申明特殊,符号,例如,,SUSAN,第一次测验缺席是由于住院,用,A,表示,,BIL,第二次测验缺席是由于出差,用,B,表示,,A,、,B,均表示缺失,但原因不同,data,a,;,Missing,a b;,input,name,$ test1,test2,;,cards,;,ann,92 96,susan A,84,bill,81 B,;,run,;,打印结果:,Obs name test1 test2,1 ann 92 96,2 susan A 84,3 bill 81 B,SAS,系统,产生的缺失值,三种情况,算术运算,非法,运算符,非法字符转换为,数值,谢谢,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!