Разделение в столбце на основе сопоставления других столбцов - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь рассчитать текущее измерение в столбце «Итого» минус самое низкое измерение, ранее записанное в столбце «Итого», где текущее измерение в столбце «Итого», соответствующее значению в столбце «Торговля», меньше чем (< ) минимальное измерение в столбце «Итого», соответствующее значению в столбце «торговля», и если два значения в столбце «ПРЕДМЕТ» совпадают и два значения в столбце «ПРОЦЕДУРА» совпадают. Чтобы подчеркнуть, минимальное значение должно быть записанные ранее. Если измерение меньше текущего измерения, но не было записано ранее (в соответствии со столбцом «дата»), его нельзя вычесть из текущего измерения. Пример выходных данных приведен ниже.

data Have;
    input Subject Type :$12. Date &:anydtdte. Trade Procedure :$12. Measurement;
    format date yymmdd10.;
    datalines;

Subject Type      Date                Trade                Procedure     Total      
500   Initial    15 AUG 2017            6                   Invasive        20        
500   Initial    15 AUG 2017            9                   Surface         35        
500   Followup   15 AUG 2018            8                   Invasive        54       
428   Followup    15 AUG 2018          56                   Outer           29        
765   Seventh     3 AUG 2018           12                   Other           13     
500   Followup    3 JUL 2018           23                   surface         98    
428   Initial     3 JUL 2017           34                   Outer           10    
765   Initial     20 JUL 2019          4                    Other           19     
610   Third       20 AUG 2019         58                    Invasive        66   
610   Initial     17 Mar 2018         25                    Invasive        17     

*Example of Output;

Subject Type      Date                Trade                Procedure     Total        Output
500   Initial    15 AUG 2017            6                   Invasive        20        20/20
500   Initial    15 AUG 2017            9                   Surface         35        35/35
500   Followup   15 AUG 2018            8                   Invasive        54        54/20
428   Followup    15 AUG 2018          56                   Outer           29       29/10
765   Seventh     3 AUG 2018           12                   Other           13       13/19
500   Followup    3 JUL 2018           23                   surface         98       98/35
428   Initial     3 JUL 2017           34                   Outer           10       10/10
765   Initial     20 JUL 2019           4                   Other           19       19/19
610   Third       20 AUG 2019          58                   Invasive        66       66/17
610   Initial     17 Mar 2018          25                   Invasive        17       17/17

1 Ответ

1 голос
/ 08 апреля 2020

не уверен, но это самое близкое, что я мог получить, чтобы соответствовать вашему выводу does this match your desired output?

Я сделал переменную monotonic(), а затем оценил ее по SUBJECT и PROCEDURE переменные. а затем присоединили таблицу к себе, используя условие t1.rank_monotonic +1 = t2.rank_monotonic.

...