2012-09-30 285 views
1

我有一個CSV日期,這是我第一次遇到這個問題,將日期從CSV轉換爲Stata時,我正在丟失值。我通常使用:Stata - 日期轉換

我從Excel中的一個變量, 'xdate'

根stata_date =日期(xdate, 「MDY」)

這通常工作,但對於這個數據集,我讓所有缺少值。

在Excel中,格式類別是Date,Type是* 3/14/2001。奇怪的是,當我將格式更改爲自定義mm/dd/yyyy(當我現在定製它在m/d/yyyy時),然後重新運行我的.DO日期翻譯完美,但是當我重新啓動Stata並運行。如果沒有這個手動更改,我會得到所有缺失的值。

任何想法?

+0

聽起來更像是一個Excel問題,而不是一個Stata問題。你是否在你的Excel文件中硬編碼日期?您應該將它們作爲值複製粘貼 - 將它們從將Excel顯示爲電子表格時重疊到數據的格式化層釋放。 –

回答

1

添加日期:2012-10-13 - 另一個Stata用戶指出date()函數中的「mdy」應該是「MDY」。

如果修復這個錯誤不能解決問題,請檢查CSV文件,找出你餵養的Stata:

clear 
set obs 1 
gen xdate = "3/14/2001" 

split xdate, p("/") 

•如果有比其他任何非數字字符-split-會抱怨「/」在字符串日期。要看看它們是什麼,我推薦Nick Cox的-charlist-命令(來自SSC)。

•xdate1,xdate2和xdate3應該是月份,日期和年份。你可以用-tab-和-codebook-來檢查它們。修復任何錯誤後,創建日期的防呆方法是:

gen xmonth = real(xdate1) 
gen xday = real(xdate2) 
gen xyear = real(xdate3) 
gen newdate=mdy(xmonth,xday,xyear)