首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在R中对Stata %tw日期进行后处理

在R中对Stata %tw日期进行后处理
EN

Stack Overflow用户
提问于 2015-09-15 05:12:57
回答 2查看 1.1K关注 0票数 3

Stata中的%tw格式的格式是: 1960w1,在R中没有等效的形式,因此%tw日期必须进行后置处理。

将.dta文件导入R中,日期为类似于1304 (而不是1985 w5)或1426 (而不是1987 w23)的整数。如果这是一个简单的时间序列,您可以按以下方式设置一个开始日期:

代码语言:javascript
运行
AI代码解释
复制
ts(df, start= c(1985,5), frequency=52) 

另一种可能是:

代码语言:javascript
运行
AI代码解释
复制
as.Date(Camp$date, format= "%Yw%W" , origin = "1985w5") 

但是,如果每一行不是单个日期,则必须将其转换。

包装ISOweek是基于ISO-8601格式的"1985-W05“,不处理Stata %tw。

Lubridate包不适用于这种格式。week()返回从日期到1月1日之间的完整七天周期的数目,再加上一个。周函数

在斯塔塔,任何一年的第一周都是从1月1日开始的,不管是哪一天。日期的Stata文档

在R中的日期%W格式中,周从星期一开始,作为一周的第一天。

从strptime %V是

按照ISO 8601的定义,一年中的一周为十进制数(00--53)。如果包含1月1日的一周(从星期一开始)在新的一年中有四天或更多天,那么它被认为是第一周。否则,它是前一年的最后一周,下一周是第一周。(接受,但在输入时被忽略。) Strptime

拉马兰热在Github上指出,海文没有正确地解释日期

月份、周、季度和半年是Stata的特定格式,分别为%tm、%tw、%tq和%th。我不确定R中是否有相应的格式,到目前为止,它们是作为整数导入的。

是否有方法将Stata %tw转换为R理解的日期格式?这是一个带有日期的Stata文件

EN

回答 2

Stack Overflow用户

发布于 2015-09-15 05:36:20

这将不是一个R代码的答案,但它是对Stata周的评论,不能被纳入评论。

严格地说,Stata中的日期是,而不是由使人们能够理解的显示格式定义的。Stata中的日期总是一个数值变量或标量或宏,其原点是1960年的第一个实例。因此,谈论%tw日期等最多不过是一种速记。我们可以使用display查看不同日期显示格式的效果:

代码语言:javascript
运行
AI代码解释
复制
. di %td 0
01jan1960

. di %tw 0
 1960w1

. di %tq 0
1960q1

. di %td 42
12feb1960

. di %tw 42
1960w43

. di %tq 42
1970q3

上面明确指出的一点是,更改显示格式不会改变存储的内容,即数值。

否则,Stata中的日期不是不同的数据类型;它们只是通过相关的显示格式可理解为日期的整数。

这个问题的前提是,用Stata周来描述一些每周的日期是正确的。这似乎不太可能,因为我不知道StataCorp以外的机构使用Stata的周规则,不仅第一周总是从1月1日开始,而且第52周总是包括8天或9天,因此一个日历年从来没有第53周。

所以,你需要去上游,找出数据应该是什么。如果没有解释,我最好的建议是把每年的52周映射到开始的日子,即每个日历年的第1(7)358天。

Stata不会将一对一映射到,任何,其他用于定义周的方案。

关于这篇关于Stata weeks的文章的更多信息

票数 5
EN

Stack Overflow用户

发布于 2015-09-15 06:13:14

目前还不完全清楚问题是什么,但与1304相对应的年份和周是:

代码语言:javascript
运行
AI代码解释
复制
wk <- 1304
1960 + wk %/% 52 
## [1] 1985

wk %% 52 + 1
## [1] 5

因此,假设一年的第一周是第一周,从1月1日开始,上述一周的开始日期是这个日期:

代码语言:javascript
运行
AI代码解释
复制
as.Date(paste(1960 + wk %/% 52, 1, 1, sep = "-")) + 7 * (wk %% 52)
## [1] "1985-01-29"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32587055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文