1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 【SAS BASE】通过DATA步导入数据注意事项(适用于text ASCII sequential flat文件)...

【SAS BASE】通过DATA步导入数据注意事项(适用于text ASCII sequential flat文件)...

时间:2022-09-27 23:07:38

相关推荐

【SAS BASE】通过DATA步导入数据注意事项(适用于text ASCII sequential flat文件)...

(从内部导入)Datelines一定是DATA Step的最后一个语句,除非SAS遇到分号,所有datelines后面的语句都被看作是数据:

1 DATA A;2 INPUT a $ b $ c;3 datalines;4 adams F 12 5 Lincon M 166 ;7 RUN;

(从外部导入)Infile语句紧跟在DATA语句后面,但一定要在INPUT语句前面:

1 DATA B;2INFILE 'C:\MYRAWDATA\B.dat';3INPUT a $ b$ c;4 RUN;

LRECL=option:处理Long records 的办法,record length指的是每一行数据的包括空格在内的字符数,SAS假定是256,若数据较长,则SAS可能读不完所有的数据:

1 INFILE 'C:\DATA\b.dat' LRECL=2000;

@n:column pointer命令SAS移动到第n列,注意在INPUT语句中一定要放在变量名之前

1 INPUT a $ 1-22 b $ Year @40 acre comma9.;2 /*表示在读入acre数据之前,SAS移动到第40列*/

@'character':即跟在某个特定的单词或字母(character)后面

1 INPUT @ 'bread:' Dogbreed $;

colunm modifier:命令SAS遇到空格就停下来

1 INPUT @'bread:' Dogbreed $;/*输出:Rottweil(默认长度为8)*/2 3 INPUT @'bread:' Dogbreed $20.;/*输出:Rottweil vet bill*/4 5 INPUT @'bread:' Dogbreed :$20.;/*输出:Rottweil(遇到空格停止)*/

读入数据小工具(/,#n,@@,@):

/:令SAS跳到SAS的下一行读入;

#n:令SAS跳到SAS的第n行读入;

@@:若数据中出现了一行有多个观测值时,应在INPUT语句最后加上@@;

@: 命令SAS停留在这里,用户可通过IF语句判断这一行到底该不该读入,若需要,则SAS才会继续读入该行的其他变量,若不需要,后面的INPUT语句就不会执行:

1 INPUT TYPE $ @;2 IF TYPE ='surface' THEN DELETE;3 INPUT NAME $ 9-27 C D;

MISSOVER:命令SAS如果该行数据读完了,不要读下一行数据,剩下的未读变量全部赋值为缺失值;

TRUNCOVER:适用于采用column或formatted input 方法,且某些数据行比其他行要短的情形。它命令SAS仅当遇到数据行的末端或者在format or column输入指定的最后一列时才停止输入。

/*MISSOVER与TRUNCOVER的相似与区别*/

若数据在读入该变量之前就终止,则MISSOVER与TRUNCOVER都会赋予该变量缺失值;

若数据在读入该变量中间就终止(比如定义3-12,到第六列就完了),则MISSOVER会赋予该变量缺失值;TRUNCOVER则会有多少分配多少DLM:指定读入文件的分隔符。注意,若分隔符是tab,则需要用DLM='09'X(IBM中为'05'X);若分隔符为字符串,则用DLMSTR=option选项。DSD option:功能

1 默认分隔符是逗号,若不是,用DLM=更改;2 数据中的引号不读入;3 引号内的分隔符不被读入;4 连续中两个连续的分隔符看作是缺失值。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。