2
更換意見,我想分配給一些意見,在「ondays」低於取決於是否變量「失敗」的新變量的值是0或1。在這裏我的數據集在SAS
ID X ONDAYS FAILURE
1 0 59 1
2 0 514 1
3 0 313 0
4 0 631 1
5 0 107 1
6 0 71 0
7 0 583 1
8 0 91 1
9 0 66 1
10 0 95 0
我的目標是對ONDAYS進行排序---從最低到最高(我可以這樣做)---在ONDAYS中對數值進行排序,然後創建一個名爲「NEWDAYS」的新變量,該變量與ONDAYS中的值相同,如果FAILURE = 1,但如果FAILURE = 0,則NEWDAYS將等於ONDAYS中與FAILURE = 1值相對應的最接近(較低值)。 例如在NEWDAYS中,觀察值1將等於59,但觀察值6將等於66(因爲到71的最接近的有序「失敗= 1」值爲66)。 你能幫我解決這個問題嗎?
謝謝。
Roland
好的解決方法,但是,我想你想改變「prev_ondays = ondays;」到「如果失敗= 1,那麼prev_ondays = ondays;」...如果你有連續的記錄失敗= 0 –
沒有。這是由執行時機處理的 - 因爲我已經將ONDAYS更改爲先前的ONDAYS值,新的PREV_ONDAYS是所需的值(兩個或三個或任何行之前)。這就是爲什麼我不使用LAG的原因 - 除了對LAG不合理的反感之外 - 在未知數量的行上管理RETAIN變量更容易。 – Joe
你是對的......如果我已經用額外的輸入數據對它進行了測試,可能已經看到了。這個問題確實要求新的日子作爲一個額外的變種,而不是改變日,但你的數據步驟解決方案可以在任何數量的obs上工作 –