SAS笔记1——读取数据

第二章 读取数据

一、

读取方式 注意事项 使用条件
list input

必须读取所有数据,缺失值用"."代替;

字符串数据不能包含空格,长度不超过8个字符。

input后列出变量名

input Name Age;

column input

变量值出现在数据行相同位置,缺失值可以用空格代替;

字符串可以含空格;可以跳过不需要的变量

input后列变量名和位置

INPUT Name $ 1-10 Age 11-13;

informats读取非标准数据

字符串$informatW.   数字informatW.d 日期informatW,

INPUT Name $16. Age 3. +1 Date MMDDYY10. (Score1 Score2 Score3) (4.1); /*变量名和形式分别放两个括号中可一次定义多个变量

混合读取方式   INPUT ParkName $ 1-22 State $ Year @40 Acreage COMMA9.; /*ParkName通过column读取,State和Year通过list读取,Acreage通过formatted方式读取,@n列指示器,告诉SAS读取Areage前移动到第40列
读取凌乱数据 @‘character'直接从某个单词后开始读取;定义长度$length.;若要SAS在读取过程中遇到空格则不再读取要在$length.前加:(例 My Dog Breed:Rottweiler Vet Bills)

INPUT @'Breed:' DogBreed $;

INPUT @'Breed:' DogBreed $20.;

INPUT @'Breed:' DogBreed :$20.;

其他:

1、跨行观测值读取:斜线/,告诉SAS跳至原数据的第二行; #n,跳至第n行。

eg:   INPUT City $ State $

                   / NormalHigh Normal Low

                  #3 RecordHigh RecordLow; /* 斜线/告诉SAS跳至下行读取变量NormalHigh,NormalLow,#3告诉SAS跳至第三行读取RecordHigh,RecordLow.此处/可用#2代替,#3也可以用/代替  */

2、一行有多个观测值:@@

3、用infile中的选项控制输出:FIRSTOBS=n,从哪行开始读取数据;

                                               OBS=n,告诉SAS一直读到第n行;

                                               MISSOVER, 在input语句中输入几个变量,SAS就在观测值中读取几个变量。如果一行未读完则进入下一行直到输入的变量都读取了变量值。MISSOVER可以让SAS不进入下一行读取,未赋值变量则设置为缺失值;

                                              TRUNCOVER,在使用column input或formatted input时,当数据行不够长时,必须使用truncover,否则会转到下一行继续读取。

4、读取分割符文件(delimited files)

      用list input方式读取文件时,变量之间应该用空格分开,如果是其他分隔符,则应用DLM=/DELIMITER=选项来指定。

      DSD(Delimiter-Sensitive Data)有三个作用,a忽略引号中数据的分隔符,b自动将字符串中的引号去掉,c将相邻的两个分隔符作缺失值处理

      DATA music;

           INFILE 'c:\MyRawData\Bands.csv' DLM = ',' DSD MISSOVER;

           INPUT BandName :$30. BigDate :MMDDYY10. EightPM NinePM TenPM ElevenPM;

     PROC PRINT DATA = music;

           TITLE 'Customers at Each Gig';

     RUN;

注意,bandname和gigdate两个变量使用了冒号修改器,冒号修改器告诉SAS读取信息的长度。如果不加冒号修改器,将默认每个变量的长度为该变量取值最长的那个值的长度。

5、list input读取有缺失值时,应用missover

6、没有空格填充缺失值的,如下所示,应用pad. 

001John Tyson 100 97 95
002Helen Ames  87 85
003ShouEn Lu   98 98 92
004Pam Mann   100100 99

     infile 'c:\books\learning\short.txt' pad;

7、外部文件超过256个字符时,用lrecl=设定长度

     infile 'long.txt'  lrecl=3000;

二、用LIBNAME使用永久数据集

猜你喜欢

转载自my.oschina.net/u/3744769/blog/1603488
SAS
今日推荐