Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 具有混合值的SAS变量_Date_Sas_Character - Fatal编程技术网

Date 具有混合值的SAS变量

Date 具有混合值的SAS变量,date,sas,character,Date,Sas,Character,我有一些变量有日期值,但是,有些行有字符信息,因此这是一个字符变量。我需要加上90,还需要从这些变量中减去今天的日期。 示例变量 可变1 08/30/18 02/27/18 06/30/18 价值 05/31/18 悬而未决的 2018年8月30日 我在想,如果有办法将所有字符值更改为missing/blank,那么我就可以将这个字符变量更改为date格式并进行计算 请帮忙!谢谢。我认为您应该通过“读取”现有变量来创建一个新的日期变量 data mixed; input var:$8.;

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

我在想,如果有办法将所有字符值更改为missing/blank,那么我就可以将这个字符变量更改为date格式并进行计算


请帮忙!谢谢。

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

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。

谢谢!这是可行的,但我有点搞不清楚格式-mmddyy10前面的“?”是什么。是什么意思?@JCP the??是为了抑制由VAR的非日期值引起的无效数据消息。您应该能够将其与任何信息一起使用,可能是12的宽度太短,或者字符串中有非打印字符。注意,实际上没有
best
informat,SAS将其解释为对正常
f
numeric informat的请求。在某些方面,
逗号
是最好的信息,因为它可以处理包含
$
和/或
字符的字符串。