Sas 格式化日期变量不';行不通

Sas 格式化日期变量不';行不通,sas,Sas,我正在使用以下代码执行数据步骤 data meme; infile '/home/bronx.txt' dlm='09'x truncover firstobs=2; length ADDRESS $12. DATE 8. GROSS 5. LAND 8. SALE 6. YEAR 4. ZIP 6.; format DATE mmddyy10.; input ADDRESS $ ZIP LAND GROSS YEAR SALE DATE; run; 尽管如此,该错误始终会导致: 警告:错误

我正在使用以下代码执行数据步骤

data meme;
infile '/home/bronx.txt' dlm='09'x truncover firstobs=2;
length ADDRESS $12. DATE 8. GROSS 5. LAND 8. SALE 6. YEAR 4. ZIP 6.;
format DATE mmddyy10.;
input ADDRESS $ ZIP LAND GROSS YEAR SALE DATE;

run;
尽管如此,该错误始终会导致:

警告:错误设置的限制=已达到选项。不会打印此类型的其他错误


看起来你不明白SAS格式和信息是用来做什么的

格式是将存储值转换为文本的指令。要想走自己的路,你需要使用信息。因此,如果文件中的文本看起来像
01/01/2016
,那么您可能希望使用
MMDDYY
informat(或者可能是
DDMMYY
informat)。如果它看起来像2016年1月1日,那么您需要使用日期信息。如果希望打印时的值看起来像日期,则还应应用多种日期格式之一

您似乎也不明白
LENGTH
语句是如何工作的。在
LENGTH
语句中,需要指定变量的长度,而不是格式。SAS变量的长度是用于在数据集中存储值的字节数。由于SAS对所有数字使用64位浮点格式,因此数字的长度应为8。(您可以使用较少的字节存储数字,但这只意味着SAS在写入数据集时会丢弃较低顺序的字节。)

您可以尝试类似以下内容:

data meme;
  infile '/home/bronx.txt' dlm='09'x truncover firstobs=2;
  length ADDRESS $12 ZIP LAND GROSS YEAR SALE DATE 8;
  format DATE mmddyy10.;
  informat DATE mmddyy.;
  input ADDRESS ZIP LAND GROSS YEAR SALE DATE;
run;