我+1以上所有評論由尼克和威廉,並建議你閱讀help datetime
。我一直在使用Stata幾年,仍然經常訪問這個幫助文件。 Stata的日期/時間功能非常棒,您可以從早期學習而不是晚些時候獲益。
我會將其他數據轉換爲Stata日期格式。 真的是。但是,如果您需要將日期轉換爲「整數YYYYNN」日期,則需要通過臨時文件。如果您將日期爲%td
的日期寫爲純文本,則它將保持顯示的格式,並且可以將其作爲整數YYYYNN日期讀回。
// data that matches your decsription
clear
set obs 1
generate date = date("20120401", "YMD")
format date %tdCCYYNN
list
// write to tempfile as plain text
tempfile plainText
outsheet using "`plainText'"
// read back with dates as integers
preserve
tempfile StataData
insheet using "`plainText'", clear
rename date dateInteger
save "`StataData'"
restore
// merge to original data
merge 1:1 _n using "`StataData'"
list
describe
這產生以下結果。
. list
+---------------------------------+
| date dateIn~r _merge |
|---------------------------------|
1. | 201204 201204 matched (3) |
+---------------------------------+
. describe
Contains data
obs: 1
vars: 3
size: 7
-----------------------------------------------------------------------------------------------------
storage display value
variable name type format label variable label
-----------------------------------------------------------------------------------------------------
date int %tdCCYYNN
dateInteger long %12.0g
_merge byte %23.0g _merge
-----------------------------------------------------------------------------------------------------
Sorted by:
Note: Dataset has changed since last saved.
但我建議您利用Stata的日期/時間功能。
你有問題倒退。如果第二個數據集中的數字看起來像201607,但格式爲%12.0g,則它們不是Stata日期值,因此不能這樣使用。您需要將這些值轉換爲Stata日期值,例如您正在追加的數據集中的日期值。 – 2016-07-15 20:22:51
如果您還沒有這樣做,那麼您可以按照「幫助日期時間」的指導工作,這無疑是我係統中訪問次數最多的文檔,第二次訪問是第24章(處理日期和時間)* Stata用戶指南* PDF可從Stata的「幫助」菜單中的PDF文檔項獲得。在使用日期和時間之前,任何Stata用戶都應該仔細閱讀非常詳細的第24章。之後,幫助文檔通常足以指明方向。 – 2016-07-15 20:23:01
更改顯示格式不會**完全改變該值。討論在http://www.stata-journal.com/sjpdf.html?articlenum=dm0067一個更基本的問題是像201204這樣的值不能是每天的日期。請參閱http://www.statalist.org/forums/help#stata,其中提供了有關顯示數據示例的提示,以使您的問題清晰明瞭。 –