2017-03-05 105 views
0

我正在尋求在星期一至星期日的星期幾前訂購一小組數據。我從Excel導入數據,標題日期,工作日,然後是兩個數字行輕按和旅程。 Stata按字母順序組織這次崩潰。我知道我可能需要創建一個代碼星期幾(例如星期一= 1)的變量,但無法完全正確地獲取代碼。Stata通過工作日訂購行數

這是一個簡單的generate然後recode

 +-----------------------------------+ 
    |  Day  Taps Journeys | 
    |-----------------------------------| 
    1. | Friday 11472.286 7886.7144 | 
    2. | Monday 11609.333  8054 | 
    3. | Saturday 8508.5713  6223 | 
    4. | Sunday  9204 6799.1665 | 
    5. | Thursday 13246.833 9286.833 | 
    |-----------------------------------| 
    6. | Tuesday 12876.167 8947.833 | 
    7. | Wednesday  12773  8979.5 | 
    +-----------------------------------+ 
+0

Stata有一個函數'dow()'從Stata每日日期生成星期幾。告訴我們您的日期,以獲得關於如何編碼的精確建議。更一般地說,除非你展示一些代碼,否則我們不能評論你的代碼。 –

+0

我的日期格式爲%tdDD/NN/CCYY。我相信我需要[標記:生成]一個新的變量,然後在[tag:collapse]中作爲[tag:by]限定符使用。最終我想減少一個數據集,這樣我就可以繪製一個典型星期幾的平均水龍頭和行程圖。 –

回答

0

如評論dow()將每日日期映射到星期幾,更確切地說是0(星期日)到6(星期六)。從週一開始調整順序很容易。 運行這個腳本應該顯示一些簡單的技巧。對於c(Weekdays)和其他有用的小列表,請參閱creturn list的輸出。按星期幾總結其他變量是你已經知道的。

clear 
set obs 21 
gen ddate = mdy(3,28,2016) + _n 
format ddate %tdDD/NN/CCYY 

gen dow = dow(ddate) 
tokenize "`c(Weekdays)'" 

forval d = 1/7 { 
    local D = `d' - 1 
    label define dow `D' "``d''", modify 
} 

label val dow dow 

tab dow 

replace dow = 7 if dow == 0 
label define dow 7 "Sunday", modify 

tab dow