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

Stata 如何将长日期转换为年?,stata,Stata,我已将Excel文件导入Stata,其中包含一个字符串变量,日期格式为月/日/年,如下所示: +--------------------------+ | country Election | |--------------------------| 1. | New Zealand 11/29/1969 | 2. | New Zealand 11/25/1972 | 3. | New Zealand 11/27/1999 |

我已将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 |
     +--------------------------+
我的意图是转换日期,以便只显示年份


我已经使用
genyear=date(Election,“MDY”)
创建了一个浮动类型的新日期变量。然而,我不知道如何进行。我怎样才能把这些日期转换成年呢?

你有答案,但我们会详细说明,以方便其他感兴趣的人

您的变量
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 |
     +-------------------------------------------------+

你有答案,但我们会为其他感兴趣的人详细说明

您的变量
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 |
     +-------------------------------------------------+

查看
help datetime
特别是“SIF到SIF转换”部分,这是您想要做的-从“日期”转换为“年度”。我建议您
生成一个新变量,而不是
替换现有变量。谢谢!我签出它并运行命令:generate Year_only=yofd(Year)。它工作得很好。请查看
帮助datetime
特别是“SIF到SIF转换”部分,这是您想要做的-从“日期”转换为“年度”。我建议您
生成一个新变量,而不是
替换现有变量。谢谢!我签出它并运行命令:generate Year_only=yofd(Year)。它工作得很好。