Eco*_*o06 14 r week-number date-arithmetic
我有一个包含位置和日期的数据集.我想计算一年中的周数(00-53),但是使用星期四作为一周的第一天.数据如下所示:
location <- c(a,b,a,b,a,b)
date <- c("04-01-2013","26-01-2013","03-02-2013","09-02-2013","20-02-2013","03-03-2013")
mydf <- data.frame(location, date)
mydf
Run Code Online (Sandbox Code Playgroud)
我知道有一个strftime函数用于计算一年中的一周,但它只能使用星期一或星期日作为一周的第一天.任何帮助将受到高度赞赏.
42-*_*42- 22
只需将4添加到日期格式的值:
> mydf$Dt <- as.Date(mydf$date, format="%d-%m-%Y")
> weeknum <- as.numeric( format(mydf$Dt+3, "%U"))
> weeknum
[1] 1 4 5 6 7 9
Run Code Online (Sandbox Code Playgroud)
这使用了一个基于0的计数约定,因为这是strftime提供的,我们只是捎带该代码库,因此在星期二开始的一年中的第一个星期五(如2013年的情况)将是一周的结果.如果您想要基于1的约定,请将值加1.(从根本上说,日期格式化值是从"原点"开始的整数序列,因此它们不会真正识别数年或数周.添加4只会移动基础日期整数的参考框架.)
编辑备注.根据Gabor的建议改为三个策略.......仍然没有解决如何处理上一年的最后一周的问题.
| 归档时间: |
|
| 查看次数: |
26300 次 |
| 最近记录: |