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

如何合并同一数据集内的两列日期?SAS代码调试求助

SAS合并两列日期的解决方法

你用coalesce函数失败的核心原因是:这个函数仅支持数值型变量,而你的Date1和Date2是字符型日期字符串,SAS自动转换时会出错,最终返回缺失值。针对你的场景,分两种情况给出解决方案:

1. 直接合并字符型日期(保留原格式)

用专门处理字符型变量的coalescec函数,它会返回第一个非缺失的字符值:

data out1;
  set out;
  Test = coalescec(Date1, Date2);
run;

2. 转换成SAS标准日期值(方便后续日期运算)

如果后续需要对日期做排序、差值计算等操作,建议先把字符型日期转成SAS数值型日期,再合并:

data out1;
  set out;
  /* 将字符日期转为SAS数值日期,anydtdte.能自动识别m-yyyy/mm-yyyy格式 */
  date1_sas = input(Date1, anydtdte.);
  date2_sas = input(Date2, anydtdte.);
  
  /* 合并数值型日期 */
  Test_sas = coalesce(date1_sas, date2_sas);
  
  /* 可选:将SAS日期转回你需要的字符格式,比如Jan-1999 */
  Test = put(Test_sas, monyy7.); /* 也可用mmddyy10.得到01/01/1999格式,按需调整 */
  
  /* 删除中间变量 */
  drop date1_sas date2_sas;
run;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 07:09:12