我正在使用以下代码进行数据步骤。
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;
尽管如此,此错误始终会发生:
警告:已达到由ERRORS =选项设置的限制。此类型的其他错误将不会打印。
答案 0 :(得分:2)
您似乎不了解SAS格式和信息的用途。
格式是用于将存储的值转换为文本的说明。要使用其他方法,您需要使用 INFORMAT 。因此,如果文件中的文本看起来像01/01/2016
,那么您可能希望使用MMDDYY
信息(或也许DDMMYY
信息)。如果看起来像01JAN2016
,那么您将要使用DATE
信息。如果您希望打印时看起来像日期,则还应该应用许多日期格式之一。
您似乎还不了解LENGTH
语句的工作原理。在LENGTH
语句中,您需要指定变量的长度,而不是格式。 SAS变量的 LENGTH 是用于将值存储在数据集中的字节数。由于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;