问题说:第一行是标题行,不应该读取(使用infile选项firstobs = 2)其余行包含ID号(字符)。性别(字符),出生日期DOB以及两个分数1和2.请注意,分数有一些缺失值,并且您希望确保SAS不会转到新行来读取这些值。使用DATE9写一个SAS DATA STEP读取DOB。以下是数据行(我将其放在我的代码中以节省空间)。
DATA READ;
INFILE DATALINES FIRSTOBS=2;
INPUT ID 1-3
GENDER $ 5
@7 DOB mmddyy10.
@ SCORE1 3
@ SCORE2 3
;
DATALINES;
***Header line: ID GENDER DOB SCORE1 SCORE2
001 M 10/10/1976 1OO 99
002 F 01/01/1960 89
003 M 05/07/2001 90 98
;
DATA PROB12_8;
SET READ;
FORMAT DOB MMDDYY9.;
RUN;
PROC PRINT DATA=PROB12_8;
RUN;
我的输出是:
OBS ID GENDER DOB SCORE1 SCORE2
1 1 M . . 99
2 2 F . 89 .
3 3 M . 90 98
如果我指定空格量并在程序中使用指针,我不会理解为什么程序会以这种方式读取。
感谢您的帮助。
答案 0 :(得分:0)
您的问题从SCORE1和SCORE2开始,指针控件指定不正确。另请注意,1OO不是100.使用列表输入和错误的infile语句选项可以轻松读取此文件。
DATA READ;
INFILE DATALINES FIRSTOBS=2 missover;
informat id $3. gender $1. dob mmddyy10.;
input ID GENDER DOB SCORE1 SCORE2;
format dob mmddyy10.;
datalines;
***Header line: ID GENDER DOB SCORE1 SCORE2
001 M 10/10/1976 1OO 99
002 F 01/01/1960 89
003 M 05/07/2001 90 98
;;;;
run;