我轉向 Stata 視頻“資料管理:如何從Chuck Huber存盤為字串的日期創建日期變數”,以確保我的日期變數格式正確,但是,我無法向我展示重新格式化的變數(school_year2 ) 顯示為一年(例如 2018 年)。
有人可以讓我知道我在這里可能缺少什么嗎?
謝謝,
.do 檔案
gen school_year2 = date(school_year,"Y")
format %ty school_year2
list school_year school_year2 in 1/10
---------------------
| school~r school~2 |
|---------------------|
1. | 2016 2.0e 04 |
2. | 2016 2.0e 04 |
3. | 2016 2.0e 04 |
4. | 2016 2.0e 04 |
5. | 2016 2.0e 04 |
|---------------------|
6. | 2016 2.0e 04 |
7. | 2016 2.0e 04 |
8. | 2016 2.0e 04 |
9. | 2016 2.0e 04 |
10. | 2016 2.0e 04 |
---------------------
. 檔案結束
uj5u.com熱心網友回復:
當您使用該date()函式時,基礎資料的值仍然是自 1960 年 1 月 1 日起的天數。因此,請繼續%td在這里作業幾天,而不是幾年。但是你可以決定它只顯示年份,使用%tdCCYY C代表世紀和Y年份。但請記住,基礎資料點仍然是 2016 年 1 月 1 日,而不是 2016 年
clear
input str4 school_year
"2016"
"2016"
"2016"
"2016"
"2016"
"2016"
"2016"
"2016"
"2016"
"2016"
end
gen school_year2 = date(school_year,"Y")
format %tdCCYY school_year2
list school_year school_year2 in 1/10
如果您只想使用年份,則使用該year()功能從日期獲取年份。下面的示例詳細說明了您可以嘗試的步驟。
clear
input str4 school_year
"2016"
"2016"
"2016"
"2016"
"2016"
"2016"
"2016"
"2016"
"2016"
"2016"
end
gen school_year2 = date(school_year,"Y")
gen school_year3 = year(school_year2)
format %tdCCYY school_year2
format %ty school_year3
list in 1/10
請注意,在最后一個示例中,所有值對您來說都是一樣的。但是第一個變數是帶有文本“2016”的字串,第二個是存盤為從 1960 年 1 月 1 日開始的天數的日期,僅顯示其年份值,最后一個是一個數字,其年份為 0顯示為年份(在這種情況下,如果顯示為基礎編號,則年份相同)。
uj5u.com熱心網友回復:
@TheiceBear 已經解釋了要點,但如果有幫助,這里的故事會有所不同。
這里的謬誤是改變(顯示)格式就是格式的改變。它對存盤的內容沒有影響,即對問題變數中保存的資料的值沒有影響。
您正在使用generate創建新變數,這很好,但可以直接在標量常量上使用di( ) 來查看基本原理。display這也是檢查對 Stata 規則的理解的好方法。
該date()函式——盡管它的歷史名稱——用于創建數字每日日期(僅)。如果您告訴date()您的輸入是一個僅包含年份的字串,那么它將 1 月 1 日歸為日期和月份。結果是一個整數,從 1960 年 1 月 1 日的比例原點開始計算。
. di date("2016", "Y")
20454
. di date("1 Jan 2016", "DMY")
20454
. di date("1 Jan 1960", "DMY")
0
可以肯定的是,很少有人愿意或能夠計算出如此規模的 20454,但您可以指定每日日期顯示格式,以便您和代碼的讀者可以直接看到。
. di %td 20454
01jan2016
顯示每日日期(或其中的一部分,例如每月或每年的日期)有許多細微的變化。每日日期的不同格式名稱都開始%td。
相反,如果您說要使用年格式顯示值 20454,那么您指的是 20454 年,即幾千年后的未來。Stata 并不感到困惑,只是它不期望諸如年份之類的值,而只是向您顯示舍入為 2.0e 04 的年份,即 20000。如果您有充分的理由使用數千或數百萬年的日期未來,日期顯示格式可能既不需要也沒有幫助。
. di %ty 20454
2.0e 04
本文重復了這樣一種想法,即顯示格式的變化只是這樣,并且不會影響存盤的值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/450504.html
