2016-12-12 59 views
1

我有一个缺少值的负载表,如果缺少三个列值,我想删除行。删除没有值的行

我累了cmiss(的所有),但那是删除所有值不只是第二个obs。

在下面的例子中,我只需要2行删除,而不是4 ..

码我用:

if click =. then delete; 
else if activity=. then delete; 
else if impression=. then delete; 
run; 

这并没有帮助:/

的表在这种形式

obs  Clicks  Activity  Impression 
1   2   7   100 
2   -   -   - 
3   3   9   170 
4   6   2   - 

我想删除第2和第4行,因为他们有一个缺少的数字。 有人吗?

+0

您的语言不清楚。如果_any_缺失,或者_all_缺失,你想删除?第2行是_all_,第4行是_any_。 – Joe

+0

对不起。如果全部丢失,我想删除。 –

+0

如果你想删除第4行,或者如果(也可能)'activity = .'(本身),那么你正在寻找的单词是*任何*都不是*全部*。如果* all *缺失,您将*只删除第4行*。 – gravity

回答

0

请看下面的例子:

data set4; 
    infile datalines missover; 
    input VAR1 VAR2; 
datalines; 
1 2 

6 9 
4 
run; 

data set5; 
set set4; 
if missing(VAR1) and missing(VAR2) then delete; 
run; 

data set6; 
set set4; 
if missing(VAR1) or missing(VAR2) then delete; 
run; 
如果你想删除的行,因为所有的变量都丢失,则会使用

和。 如果您想删除该行,因为缺少任何变量,请使用OR。

+0

该死!如果然后做到了。这很容易。简直让我很尴尬。感谢您的回应! –