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

SAS读取TXT文件时DATE_JOINED日期列输出缺失问题求助

问题原因分析
  • 多字符分隔符参数使用错误。你当前使用的dlm='<|>'参数会将<、|、>三个字符各自作为独立分隔符,而不会把<|>整体作为分隔符拆分字段,直接导致字段拆分顺序完全错乱。多字符分隔符需要用dlmstr参数指定。
  • INPUT语句读取模式错误。你直接在变量后写yymmdd10.的写法属于格式化输入,会触发SAS按固定位置读取字段,不会按照分隔符自动拆分字段长度,导致DATE_JOINED读取的内容完全错位,无法匹配日期格式最终生成缺失值。
解决方案

修改后可正常读取的代码如下:

data example_txt;
/* 改用dlmstr指定整体多字符分隔符 */
infile '/home/u59667351/example_csv/example_csv.txt' dlmstr='<|>' firstobs=2;
/* 用:修饰符,表示按分隔符读取字段后再应用对应输入格式 */
input PERSON_ID $ DEPT_ID $ DATE_JOINED : yymmdd10. ;
format DATE_JOINED yymmdd10.;
run;

你也可以通过单独指定informat的方式实现同样效果,写法如下:

data example_txt;
infile '/home/u59667351/example_csv/example_csv.txt' dlmstr='<|>' firstobs=2;
informat DATE_JOINED yymmdd10.;
input PERSON_ID $ DEPT_ID $ DATE_JOINED ;
format DATE_JOINED yymmdd10.;
run;

修改说明:

  1. 将dlm替换为dlmstr,确保<|>被识别为一个完整的分隔符做字段拆分
  2. 通过冒号修饰符/单独informat语句的方式,告知SAS先按照分隔符读取完整的字段内容,再对内容应用yymmdd10.格式转换,不会强制按固定宽度截取内容。

内容的提问来源于stack exchange,提问作者Barney-LoveStudy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:54:02