所以我有一個數據集,其中包含一個股票ID和一個date_time變量等。我想從下一個date_time刪除date_time變量爲30分鐘的所有觀察值,並且股票是相同的。因此,如果我的數據集看起來像這樣:刪除觀察相隔一段時間
Date_Time|Stock_ID
01APR11: 07:50:00|Treasury
01APR11: 07:51:00|Treasury
這兩個意見將被刪除。到目前爲止,我正試圖用dif和lag函數標記它們的刪除。這是我的代碼
data 3;
set 2;
time_diff=dif(Date_Time)/60;
same_stock=lag(Stock);
delete=.;
if abs(time_diff)<=30 AND same_stock=Stock_ID then delete=1;
run;
在此之後,我可以刪除所有觀察值,其中delete = 1。 問題是,我不認爲這個代碼是非常有效的,它肯定容易出錯,特別是如果有三個日期時間全部相鄰。
必須有更好的方法來做到這一點。
您希望如何處理大於60分鐘的相同庫存的一系列條目,但所有條目少於相隔10分鐘?全部刪除它們? – user667489
是的,我想將它們全部刪除。 – Pcarlitz
我真的不認爲你現有的方法太糟糕了,除非你的數據集很大,並且你迫切希望避免多讀一遍。數據集是否按特定順序排序? – user667489