You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在SAS中读取宽度不等的数据集时遇到报错的解决方法咨询

问题原因
  • 日期输入格式与实际数据完全不匹配:Date1列你指定了ddmmmyy10.(适用于03Jan1950这类带月份缩写的日期),但实际传入的是01/03/1950这类斜杠分隔的纯数字日期,格式完全错位。
  • 日月年/月日年格式匹配错误:你给Date1、Date2指定了ddmmyy10.(日月年格式),但看第二行样本数据05/15/2000,第二个字段为15,显然是日期值,说明你的数据是月/日/年的结构,应该用mmddyy10.格式读取。
  • 最后一列Date的格式同样写反:该列实际是带月份缩写的日期格式,你却指定了ddmmyy9.,应该更换为date9.或者ddmmmyy9.格式。
修正后可运行代码
data ThreeDates; 
infile datalines; 
/* 修正三个变量的输入格式,匹配实际数据结构 */
input Date1 mmddyy10. Date2 mmddyy10. Date date9.; 
/* 可选:指定输出格式,避免直接显示SAS日期数值 */
format Date1 Date2 Date yymmdd10.;
datalines; 
01/03/1950 01/03/1960 03Jan1970
05/15/2000   05/15/2002   15May2003
10/10/1998 11/12/2000    25Dec2005
; 
run;
验证说明

运行后可以执行proc print data=ThreeDates; run;查看输出,三个日期会按照指定的yymmdd10.格式正常显示,不会再出现缺失值或者报错。

内容的提问来源于stack exchange,提问作者tech bitz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:36:01