1、234567891011121314151617181920212223标准格式的数据文件的转换标准格式的数据文件的转换24252627110011160310150110011160310150110021165422180110021165422180110302270230130110302270230130。6列是等级码列是等级码,7列是性别列是性别,8-9列是年龄列是年龄,10列是教育程列是教育程度度,11列是职业代码列是职业代码,12-15列是收入。应如何录进列是收入。应如何录进SAS?DATA diaoch;/*存入存入diaoch数据集数据集,文件名长度为文件名长度为18个字符
2、。个字符。*/INPUT id 1-5 area 1-2 level 6 sex 7 age 8-9 edc 10 ocu 11 sal 12-15;LIST;/*显示每行的数据,以便核对。可省之显示每行的数据,以便核对。可省之*/CARDS;/*告诉告诉SAS,数据行从下一行开始读之,数据行从下一行开始读之*/110011160310950110021165421980110302270232130run;/*本段程序是典型的按列输入模式录入数据。本段程序是典型的按列输入模式录入数据。*/特点:特点:数据字段数据字段位置固定位置固定 282930张三丰张三丰77/12/231.68$1,23
3、477/12/231.68$1,234李斯李斯 80/05/162.01$2,20080/05/162.01$2,200吴留意吴留意82/05/16190 1,80082/05/16190 1,80015-18列是身高列是身高(米米),19列后是薪水。应如何录进列后是薪水。应如何录进SAS?DATA tmp;INPUT name$6.birthday yymmdd8.height 4.2 sal comma8.;CARDS;张三丰张三丰77/12/231.68$1,234李斯李斯 80/05/162.01$2,200吴留意吴留意82/05/16190 1,800run;/*本段程序是典型的格式
4、化输入模式录入数据。本段程序是典型的格式化输入模式录入数据。*/3132333435363738张三丰张三丰 男男 26 1.68 223426 1.68 2234李斯李斯 女女 28 1.71 90028 1.71 900诸葛留意诸葛留意 男男 33 1.9 180033 1.9 1800身高身高(米米)、薪水各字段,字段间、薪水各字段,字段间空格分开。应如何录进空格分开。应如何录进SAS?DATA tmp;INPUT name$sex$age height sal;CARDS;张三丰张三丰 男男 26 1.68 2234李斯李斯 女女 28 1.71 900诸葛留意诸葛留意 男男 33 1
5、.9 1800run;/*本段程序是典型的列表输入模式录入数据。本段程序是典型的列表输入模式录入数据。*/特点:特点:字段间的分隔符固定字段间的分隔符固定 394041424344name=name=张三丰张三丰 sex=sex=男男 age=26 sal=223.4age=26 sal=223.4name=name=李斯李斯 sex=sex=女女 age=28 sal=523.6age=28 sal=523.6name=name=诸葛留意诸葛留意 sex=sex=男男 age=33 sal=1260.5age=33 sal=1260.5应如何录进应如何录进SAS?DATA tmp;INPUT
6、 name=$sex=$age=sal=;CARDS;name=张三丰张三丰 sex=男男 age=26 sal=223.4name=李斯李斯 sex=女女 age=28 sal=523.6name=诸葛留意诸葛留意 sex=男男 age=33 sal=1260.5run;特点:特点:字段前有字段前有“字段名字段名=”=”标记标记 45464748495051525354555657585960在第一个观测值未读入前,该变量的初值为零,在数据步的每在第一个观测值未读入前,该变量的初值为零,在数据步的每次循环中重复加入表达式值,若表达式计算结果为缺失值时,次循环中重复加入表达式值,若表达式计算结
7、果为缺失值时,将作零处理。将作零处理。6162636465 函数名函数名功能简介功能简介函数名函数名功能简介功能简介ABS(X)返回返回X X的绝对值的绝对值ARCOS(x)反余弦反余弦MAX(X,Y,.)返回返回X X,Y Y,.中的最大值中的最大值 ARSIN(x)反正弦反正弦MIN(X,Y,.)返回返回X X,Y Y,.中的最小值中的最小值 COSH(x)双曲余弦双曲余弦MOD(x,y)计算计算x/yx/y的余数的余数SINH(x)双曲正弦双曲正弦SIGN(x)返回参数返回参数x x的符号或的符号或0 0PROBBNML(p,n,r)二项式概率分布函数二项式概率分布函数SQRT(x)计算
8、计算x x的平方根的平方根PROBCHI(x,df)卡方概率分布函数卡方概率分布函数DIM(array)返回数组中元素个数返回数组中元素个数PROBF(x,ndf,ddf)F分布函数分布函数EXP(x)e的的x x次幂次幂PROBNORM(x)标准正态分布函数标准正态分布函数LOG(x)计算计算x x的自然对数的自然对数PROBT(p)T分布函数分布函数LOG10(x)计算计算x x的常用对数的常用对数CINV(p,df,nc)卡方分布分位数卡方分布分位数DIGAMMA(x)计算计算函数对数的导数函数对数的导数FINV(p,ndf,ddf,nc)F分布分位数分布分位数COS(x)计算余弦计算余
9、弦TINV(p,df,nc)T分布分位数分布分位数66SIN(x)计算正弦计算正弦RANNOR(x)产生一标准正态随机数产生一标准正态随机数TAN(x)计算正切计算正切RANUNI(x)产生一产生一0,1均匀随机数均匀随机数MEAN(x,y,.)计算算术平均计算算术平均INDEX(a,b)求字串求字串b b在字符串在字符串s s中位置中位置STD(x,y,.)计算标准差计算标准差LEFT(a)左对齐一个字符串左对齐一个字符串SUM(x,y,.)求和求和LENGTH(a)返回字符串返回字符串a a的长度的长度VAR(x,y,.)计算方差计算方差RIGHT(a)右对齐一字符串右对齐一字符串DATE
10、()返回当前日期作为返回当前日期作为SASSAS日日期值期值TRIM(a)移去字符串尾部空格移去字符串尾部空格DAY(date)从从SASSAS日期值返回月份中日期值返回月份中的日数的日数SUBSTR求子串求子串YEAR(date)从从SASSAS日期值返回年数日期值返回年数 UPCASE大写大写INTCK(int,from,to)返回两日期间的返回两日期间的intint单位数单位数INTNX(int,from,n)返回与起始间隔返回与起始间隔n n单位的单位的终止时间终止时间TRANSLATE(arg,to,fr)编码转换函数编码转换函数MDY(mon,day,yr)将月日年值转换为将月日年
11、值转换为SASSAS值值LAGn(x)返回前面第返回前面第n n个观测的个观测的x x变变量值量值DIFn(x)返回当前值与前返回当前值与前n n个观测个观测值的差距值的差距6768结果:结果:OBS NAME SEX SCOREOBS NAME SEX SCORE1 zyh M 11 zyh M 12 tzf M 22 tzf M 23 waq F 33 waq F 34 jzh F 54 jzh F 569结果:结果:(pv1(pv1、pv2pv2是前是前1 1、2 2条记录条记录的的valuevalue值,而值,而dv1dv1、dv2dv2是是valuevalue与前与前1 1、2 2条记录中条记录中valuevalue的差分值的差分值)OBSOBSVALUEVALUE PV1 PV1 PV2PV2DV1DV1DV2DV2 1 1 1 1 .2 2 4 4 1 1.3 3.3 3 9 9 4 4 1 1 5 5 8 8 4 41616 9 9 4 4 7 71212 5 25 16 9 9 16 5 25 16 9 9 1670