2017-04-26 181 views
1

我有一個數據集,數據按月份和年份排序。我想destring月份變量,以便我最終可以創建一個日期變量,但因爲它們都被標記爲1月,2月等。我該如何destring變量?刪除變量

+0

沒有嘗試在代碼和沒有數據的例子。即使你只是感到困惑,你應該始終能夠提供一些數據示例來處理。 –

回答

0

你不知道。這是日期函數的工作。所有文件都有記錄,通過help datetime

destring適用於偶然讀取爲字符串變量的數字,以便典型條目可能爲"42""666"。通常在變量包含元數據(例如標題行)或非Stata標記(例如"NA")或其他非數字字符(通常在少至一次觀察)時出現字符串導入。從MS Excel導入是一個常見原因,因爲電子表格用戶在數字數據列中散佈文本時往往很鬆散。

具有諸如"January"等值的變量不符合條件。這是在你的腦海裏,月份名稱映射到月份數字,但destring不分享這些知識。

日期函數得到這份工作:

* Example generated by -dataex-. To install: ssc install dataex 
clear 
input str8 month float year 
"January" 2017 
"February" 1942 
end 

gen mdate = monthly(month + string(year), "MY") 

list 

    +-------------------------+ 
    | month year mdate | 
    |-------------------------| 
    1. | January 2017  684 | 
    2. | February 1942 -215 | 
    +-------------------------+ 

format mdate %tm 

list 

    +--------------------------+ 
    | month year mdate | 
    |--------------------------| 
    1. | January 2017 2017m1 | 
    2. | February 1942 1942m2 | 
    +--------------------------+ 

(聲明的興趣:中destring原作者)

this thread見。