2016-02-05 86 views
-1

我有一组数据,如下所示。 我需要根据MODEL排除'数< 100'的第几行。一旦数> 100,下面的行会保留无论数> 100或100 <SAS - 排除前几行

|Make |Model |SoldMonth|Counts| 
|ford |class_c |Jan_2015 |80 | 
|ford |class_c |Feb_2015 |90 | 
|ford |class_c |Mar_2015 |70 | 
|ford |class_c |Apr_2015 |120 | 
|ford |class_c |May_2015 |130 | 
|ford |class_c |Jun_2015 |50 | 
|ford |class_c |Jul_2015 |70 | 
|ford |class_c |Aug_2015 |140 | 
|ford |class_c |Sep_2015 |110 | 
|ford |Maxi |Jan_2015 |20 | 
|ford |Maxi |Feb_2015 |50 | 
|ford |Maxi |Mar_2015 |80 | 
|ford |Maxi |Apr_2015 |120 |  
|ford |Maxi |May_2015 |130 | 
|ford |Maxi |Jun_2015 |110 | 
|ford |Maxi |Jul_2015 |180 | 
|ford |Maxi |Aug_2015 |90 | 
|ford |Maxi |Sep_2015 |110 | 

这里就是我想:

|Make |Model |SoldMonth |Counts|  
|ford |class_c |Apr_2015 |120 | 
|ford |class_c |May_2015 |130 | 
|ford |class_c |Jun_2015 |50 | 
|ford |class_c |Jul_2015 |70 | 
|ford |class_c |Aug_2015 |140 | 
|ford |class_c |Sep_2015 |110 |  
|ford |Maxi |Apr_2015 |120 | 
|ford |Maxi |May_2015 |130 | 
|ford |Maxi |Jun_2015 |110 | 
|ford |Maxi |Jul_2015 |180 | 
|ford |Maxi |Aug_2015 |90 | 
|ford |Maxi |Sep_2015 |110 | 

任何援助将不胜感激!

回答

5

您可以创建一个标志,该标志在找到第一个值GE 100时设置,并使用它来确定输出哪些观测值。

data ford; 
    input (a b c)($) y; 
    cards; 
ford class_c Jan_2015 80 
ford class_c Feb_2015 90 
ford class_c Mar_2015 70 
ford class_c Apr_2015 120 
ford class_c May_2015 130 
ford class_c Jun_2015 50 
ford class_c Jul_2015 70 
ford class_c Aug_2015 140 
ford class_c Sep_2015 110 
ford Maxi Jan_2015 20 
ford Maxi Feb_2015 50 
ford Maxi Mar_2015 80 
ford Maxi Apr_2015 120 
ford Maxi May_2015 130 
ford Maxi Jun_2015 110 
ford Maxi Jul_2015 180 
ford Maxi Aug_2015 90 
ford Maxi Sep_2015 110 
;;;; 
    run; 
proc print; 
    run; 
data ford2; 
    set ford; 
    by a b notsorted; 
    if first.b then f=0; 
    if not f and y lt 100 then f+0; 
    else f=1; 
    if f; 
    run; 
proc print; 
    run; 

enter image description here

+0

谢谢。代码运行良好 – beibei