我想计算' age last birthday'在给定具体出生日期的特定评估日期,使用SAS PROC SQL
命令。
我该怎么办?是否有任何限制?
示例输入
DATA INPUTS;
infile cards dlm=',' dsd;
INPUT DOBDt :DATE9. EvalDt :DATE9. expected;
FORMAT DOBDt date9. EvalDt date9.;
CARDS;
11MAY2009,10MAY2015,5
11MAY2009,11MAY2015,6
11MAY2009,12MAY2015,6
28FEB1984,01DEC2015,31
29FEB1984,28FEB2012,27
29FEB1984,29FEB2012,28
29FEB1984,01MAR2012,28
;
RUN;
目标是将dobDt
作为输入,在EvalDt
上进行评估并生成expected
的答案
答案 0 :(得分:1)
这可以这样做:
PROC SQL
PROC SQL;
CREATE TABLE outputs2 AS
select
*
,intck('year',DOBDt,EvalDt,'c') AS actual
,((calculated actual) eq expected) AS check
FROM
inputs
;
QUIT;
对于提供的所有示例, actual
(计算值)与所需结果匹配expected
。我不知道这种方法有任何限制,尽管由于SAS日期的值范围有限,可能会有一些极端年龄无法计算。
作为奖励:
数据步骤
DATA outputs;
set inputs;
actual = intck('year',DOBDt,EvalDt,'c');
check = (actual eq expected);
RUN;
答案 1 :(得分:0)