我有一些具有日期值的变量,但是某些行具有字符信息,因此使它成为字符变量。我需要加90,还要从这些变量中减去今天的日期。 示例变量 变量1 18/30/18 18/02/27 18年6月30日 值 18/05/31 待定 18年8月30日
我在想,如果有一种方法可以将所有字符值更改为丢失/空白,那么我将能够将此字符变量更改为日期格式并进行计算。
请帮助!谢谢。
答案 0 :(得分:1)
我认为您应该通过“读取”现有变量来创建新的日期变量。
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;
答案 1 :(得分:0)
首先,您可以使用一个值测试语法。像这样
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。