如何使用SAS代码为表中FENTREGA日期列的空单元格填充指定值
SAS日期列空值填充实现代码
你需要处理的FENTREGA列如果是SAS标准日期类型(本质为数值型),无法直接存储字符串"Empty",可根据需求选择对应方案:
若FENTREGA为字符型
直接替换空值即可:
/* 替换为你实际的原始表名和输出表名 */ data new_table; set original_table; if strip(FENTREGA) = "" or missing(FENTREGA) then FENTREGA = "Empty"; run;
若FENTREGA为数值日期型
方案1:转换为字符型列,直接写入"Empty"值
适合不需要再用该列做日期计算的场景,替换后空值直接存储为"Empty"字符串:
data new_table; set original_table; /* 定义字符型变量长度,可按需调整 */ length FENTREGA_char $20; if missing(FENTREGA) then FENTREGA_char = "Empty"; /* 非空值沿用原日期格式转为字符串,ddmmyy10.可替换为你实际使用的日期格式 */ else FENTREGA_char = put(FENTREGA, ddmmyy10.); /* 替换原列 */ drop FENTREGA; rename FENTREGA_char = FENTREGA; run;
方案2:保留数值日期类型,通过自定义格式显示空值为"Empty"
适合后续仍需用该列做日期计算的场景,原始数值不会被修改,仅调整显示效果:
/* 自定义日期显示格式 */ proc format; value date_empty_fmt . = "Empty" other = [ddmmyy10.]; /* 替换为你实际使用的日期格式 */ run; /* 给目标列应用自定义格式 */ data new_table; set original_table; format FENTREGA date_empty_fmt.; run;
内容的提问来源于stack exchange,提问作者jvm.97
相关产品推荐
相关产品推荐

