我的數據集副本由若干變量:塔塔:刪除基於日期
* Example generated by -dataex-. To install: ssc install dataex
clear
input float(v1 v2) str11 Date float(v4 v5 v6 v7 v8)
1 2 "15-aug-2016" 1 1 1 1 1
1 2 "07-may-2015" 1 1 1 1 50
1 2 "07-may-2015" 1 1 1 1 88
1 2 "15-aug-2016" 1 1 1 1 29
end
變量date
是日期和時間,被格式化爲日期
generate double date = date(Date,"DMY")
我對於v1-v2-v4-v5-v6-v7(如示例中),重複項是相同的,而v8則不同。
我需要刪除基於v1-v2-v4-v5-v6-v7的副本,並保留最小日期的副本(此處爲2015年5月7日)。
我曾嘗試沒有成功:
1.
gsort -date
bysort v1 v2 v4 v5 v6 v7: generate dublet=_n
order dublet date
keep if dublet==1
drop dublet
- >適用於前25行左右,然後保持一個錯幾次,然後正確的再次。 (在我看來,那bysort
命令刪除排序gsort
做任何知道,如果這是正確的?)
bysort v1 v2 v4 v5 v6 v7 (date) : keep if _n == _N
- >顯然保持錯誤的,因爲Date
不是-Date
。 然而,-Date
是不是一種選擇 - 塔塔寫道:- invalid name
'bysort'肯定會在您的代碼中取消您的'gsort'。與其保留最後一個日期可以保留第一個日期,不必在排序之前直接或間接地否定任何變量。 –