具有混合值的SAS变量



我有一些变量有日期值,但有些行有字符信息,因此这是一个字符变量。我需要加90,还需要从这些变量中减去今天的日期。示例变量变量108/30/182018年2月27日2018年6月30日价值2018年5月31日悬而未决的08/30/18

我在想,如果有一种方法可以将所有字符值更改为缺失/空白,那么我就可以将这个字符变量更改为日期格式并进行计算。

请帮忙!非常感谢。

我认为应该通过"读取"现有变量来创建一个新的日期变量。

data mixed;
input var:$8.;
date = input(var,??mmddyy10.);
if not missing(date) then do;
p90 = date + 90;
mtoday = date - today();
end;
format date p90 mtoday mmddyy10.;
cards;
08/30/18
02/27/18
06/30/18
value
05/31/18
pending
08/30/18 
;;;;
run;
proc print;
run;

首先,您可以使用一个值测试语法。像这个

data _null_;
strdate='08/30/18';
a=input(strdate,mmddyy10.);
cal1=a+90-today();
cal2=put(cal1,mmddyy10.);
put strdate a cal1 cal2;
run;

然后创建新的变量来存储新的值,如上面提到的cal2。

如果您不想更改原始变量名,请在数据步骤中重命名cal2。

最新更新