我在SAS數據集中有4列,如下面的第一張圖所示。我需要通過ID比較連續行的日期。對於每個ID,如果Date2發生在相同ID的下一行Date1之前,則保留Bill金額。如果Date2發生在下一行的Date1之後,請刪除帳單金額。因此對於每個ID,只保留Date2小於下一行Date1的賬單。我已經把結果集應該放在底部。SAS - 比較一組內的觀測值以挑選值
0
A
回答
1
你要創建一個移動的下一行的DATE1上一行進行比較新的變量。假設你的日期變量的日期格式,使用PROC EXPAND
並作出比較,確保你不比較,這將有失蹤LEAD值的最後一個值:如果讓您對數據進行排序
DATA TEST;
INPUT ID: $3. DATE1: MMDDYY10. DATE2: MMDDYY10. BILL: 8.;
FORMAT DATE1 DATE2 MMDDYY10.;
DATALINES;
AA 07/23/2015 07/31/2015 34
AA 07/30/2015 08/10/2015 50
AA 08/12/2015 08/15/2015 18
BB 07/23/2015 07/24/2015 20
BB 07/30/2015 08/08/2015 20
BB 08/06/2015 08/08/2015 20
;
RUN;
PROC EXPAND DATA = TEST OUT=TEST1 METHOD=NONE;
BY ID;
CONVERT DATE1 = DATE1_LEAD/TRANSFORMOUT=(LEAD 1);
RUN;
DATA TEST2; SET TEST1;
IF DATE1_LEAD NE . AND DATE2 GT DATE1_LEAD THEN BILL=.;
RUN;
1
相關問題
- 1. SAS:挑選某些觀察值來顯示
- 2. RxSwift - 在一個可觀測值內的多個可觀測值
- 3. SAS跨多個變量的比較值
- 4. 如何將值進行比較,以在SAS一檔或R
- 5. SAS企業:通過比較值
- 6. 如何挑選和比較JSON數據的價值?
- 7. 比較數組值
- 8. 比較一個值與數組的每個值,它是另一個數組內
- 9. 在一段時間內挑選列值的每一次出現
- 10. 比較選擇選項值
- 11. 比較行內的值
- 12. 比較選擇框的值
- 13. 比較數組中的值
- 14. 比較一個值與一個數組
- 15. SAS計數觀測數以內的按組,刪除一些數據
- 16. SAS - 從一個觀察值讀取值到另一個觀察值
- 17. 比較組內,以獲取共同的價值
- 18. SAS:比較兩個數據集,但需要從一組中刪除額外的觀察值
- 19. rapidxml比較節點值(測試值)
- 20. 從較短的可觀測值創建長時間運行的可觀測值?
- 21. knockoutjs - 可觀察數組內部的可觀測值
- 22. 比較新值與以前的值
- 23. 比較數組內的值的總和以確定哪個數值最大
- 24. 使用SAS中的對比度或估計值比較變量組合
- 25. 將觀測值置於一個變量中SAS EG
- 26. ViewState比較CheckBoxList選定值
- 27. 比較兩個選擇值
- 28. 比較表單組件值
- 29. 布爾數組值比較
- 30. Java - 比較數組數值
謝謝。這工作就像我需要它。 – Keni