使用top year将Stata中的两位数年份从字符串重新格式化为日期时间
我理解要将字符串01-12-06和01-12-96翻译为Stata中的日期,您必须:使用top year将Stata中的两位数年份从字符串重新格式化为日期时间,stata,Stata,我理解要将字符串01-12-06和01-12-96翻译为Stata中的日期,您必须: 在掩码中指定假定前缀“DM20Y”和 添加可选参数topyear:clock(字符串、掩码、topyear) 因此,generate double timestamp=clock(timestr,“DMY”,2020)将两位数的年份06解释为2006年,因为2006年不超过2020年。两位数的96年将被解释为1996年,因为2096年确实超过了2020年 但是,我在实现这一点上遇到了困难。因此,我决定: g
- 在掩码中指定假定前缀“DM20Y”和
- 添加可选参数topyear:clock(字符串、掩码、topyear)
generate double timestamp=clock(timestr,“DMY”,2020)
将两位数的年份06解释为2006年,因为2006年不超过2020年。两位数的96年将被解释为1996年,因为2096年确实超过了2020年
但是,我在实现这一点上遇到了困难。因此,我决定:
g date = date(strdate, "MD20Y")
format date %td
然后我想基本上用前缀“19”替换大于2040的日期(因此2097变为1997;但2006保持为2006)
谁能告诉我怎么写那个条件语句吗?我总是出错
或者,反过来说,如何正确使用topyar
功能?函数date()
根据字符串参数生成数字每日日期,并给出解释规则。它可以追溯到1995年Stata 4中最早引入日期功能的时候,当时每天的日期是唯一一种特别支持的日期,日历年被认为是不言自明的。现在同义词daily()
可用,我建议可以也应该使用它,无论您的读者对Stata arcana的了解程度如何。否则,正如经常发生的那样,人们可能会开始猜测date()
是一个通用函数,它根据用户的突发奇想生成其他类型的日期,这与所有相关文档相反
关于您的问题,我认为您需要进一步了解的是daily()
和date()
支持topyear规范。示例:
. di %td daily("24 May 96", "DMY", 2050)
24may1996
. di %td daily("24 May 06", "DMY", 2050)
24may2006
元提示:我总是用display
和一些我知道答案的具体例子来测试日期问题
Stata中的help daily()
文档或函数date()
根据字符串参数生成数字每日日期,并给出解释规则。它可以追溯到1995年Stata 4中最早引入日期功能的时候,当时每天的日期是唯一一种特别支持的日期,日历年被认为是不言自明的。现在同义词daily()
可用,我建议可以也应该使用它,无论您的读者对Stata arcana的了解程度如何。否则,正如经常发生的那样,人们可能会开始猜测date()
是一个通用函数,它根据用户的突发奇想生成其他类型的日期,这与所有相关文档相反
关于您的问题,我认为您需要进一步了解的是daily()
和date()
支持topyear规范。示例:
. di %td daily("24 May 96", "DMY", 2050)
24may1996
. di %td daily("24 May 06", "DMY", 2050)
24may2006
元提示:我总是用display
和一些我知道答案的具体例子来测试日期问题
Stata中的
help daily()
文档或是!非常感谢。太快了,是的!非常感谢。太快了。