月份和年份功能组合未在SAS中给出预期结果

时间:2014-06-26 20:06:49

标签: sas

我试图删除BATCH中的所有行:2014年5月。

data out
set INPUT;
if MONTH(BATCH) NE 05 and YEAR(BATCH) NE 2014;
RUN;

批处理列中的数据是数字,格式为MONYY5。

EX:::: MAR13, APR14, MAY14, FEB14, JAN14, FEB12

运行代码后,它将删除所有2014年的记录,而不是删除MAY和2014。

提前致谢。

1 个答案:

答案 0 :(得分:1)

因为你要求的每一个都不是2014年和05年。你想要的一切都不是(2014年和05年)。

data out
set INPUT;
if NOT (MONTH(BATCH) eq 05 and YEAR(BATCH) eq 2014);
RUN;

另一种选择,如果你知道它是MONYY:

data out
set INPUT;
if vvalue(batch) ne 'MAY14'; *vvalue gives formatted value
RUN;

只有当你确定它的格式是这样时才有效。