我已将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")
创建了一个带浮点类型的新日期变量。但是,我不知道该怎么办。我怎么能把这些日期变成几年呢?
答案 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 |
+-------------------------------------------------+