如何将长日期转换为多年?

时间:2017-04-11 18:59:03

标签: stata

我已将Excel文件导入Stata,其中包含日期为月/日/年格式的字符串变量,如下所示:

     +--------------------------+
     |     country     Election |
     |--------------------------|
  1. | New Zealand   11/29/1969 |
  2. | New Zealand   11/25/1972 |
  3. | New Zealand   11/27/1999 |
  4. | New Zealand   11/25/1972 |
  5. | New Zealand   09/17/2005 |
     +--------------------------+

我的目的是改变日期,以便只显示年份。

我使用gen year = date(Election, "MDY")创建了一个带浮点类型的新日期变量。但是,我不知道该怎么办。我怎么能把这些日期变成几年呢?

1 个答案:

答案 0 :(得分:0)

你有答案,但我们会为了任何其他感兴趣的人的利益而拼写出来。

您的变量year名称错误,因为它是每日日期变量。我建议使用函数daily()而不是date()来强调正在发生的事情。它是不同伪装下的相同代码。然后,您需要yofd()进行转换。

clear 
input str11 (country Election) 
"New Zealand"   "11/29/1969"
"New Zealand"   "11/25/1972"
"New Zealand"   "11/27/1999"
"New Zealand"   "11/25/1972"
"New Zealand"   "09/17/2005"
end 
gen dailydate = daily(Election, "MDY") 
format dailydate %td 
gen yeardate = yofd(dailydate) 
list 


     +-------------------------------------------------+
     |     country     Election   dailydate   yeardate |
     |-------------------------------------------------|
  1. | New Zealand   11/29/1969   29nov1969       1969 |
  2. | New Zealand   11/25/1972   25nov1972       1972 |
  3. | New Zealand   11/27/1999   27nov1999       1999 |
  4. | New Zealand   11/25/1972   25nov1972       1972 |
  5. | New Zealand   09/17/2005   17sep2005       2005 |
     +-------------------------------------------------+