如何使用SAS删除缺少字符值的行

如何使用SAS删除缺少字符值的行,sas,character,row,Sas,Character,Row,我有这样一个数据集: id type time 70657 23E Nov 4 2002 12:00AM 61651 12R 11603 DQ2 45819 Jul 23 2013 12:00AM 732 Mar 4 2011 12:00AM 22810 231 我想用缺失的值做两件事。 第一件事是如果变量time的值为“”,如何删除行 期望输出1 id type time 70657 23E Nov

我有这样一个数据集:

id     type       time
70657  23E  Nov  4 2002 12:00AM
61651  12R  
11603  DQ2  
45819       Jul 23 2013 12:00AM
       732  Mar  4 2011 12:00AM
22810  231
我想用缺失的值做两件事。 第一件事是如果变量time的值为“”,如何删除行

期望输出1

id     type       time
70657  23E  Nov  4 2002 12:00AM 
45819       Jul 23 2013 12:00AM
       732  Mar  4 2011 12:00AM
第二件事是,如果有任何缺少的值,则删除这些行

期望输出2

id     type       time
70657  23E  Nov  4 2002 12:00AM
SAS代码:

data character;
  length id type time $ 24;
  input id $ 1-5 type $ 8-10 time $ 13-31;
cards;
70657  23E  Nov  4 2002 12:00AM
61651  12R  
11603  DQ2  
45819       Jul 23 2013 12:00AM
       732  Mar  4 2011 12:00AM
22810  231
;
run;

我倾向于使用
procsql
。比如:

proc sql;
    create table newchar as
        select *
        from character
        where id is not null and type is not null and time is not null;
quit;
SAS替代方案

DATA WANT;
    SET CHARACTER (WHERE = (TIME ~= "" AND TYPE ~= "" AND ID ~= ""));
RUN;

这是可行的,但我的实际数据超过10000行,我在我的数据中运行这个sql,它生成两行,最多20000行。这里发生了什么?@LuYu。我的逻辑是错误的。它返回的行在某些列中具有
null
值,而不是没有
null
值。