Ana*_*eam 0 datetime r week-number
您好,我正在寻找三年内一系列日期的星期数。但是,R没有提供正确的星期数。我正在生成从2016-04-01到2019-03-30的日期序列,然后尝试计算三年的周数,这样我就得到了第54、55、56周。
但是,当我检查2016-04-03的星期时,R将星期数显示为14,与excel交叉检查时,它是星期数15,并且它只是计算7天而未引用实际的日历天。另外,每年的第一个星期从1开始
代码看起来像这样
days <- seq(as.Date("2016-04-03"),as.Date("2019-03-30"),'days')
weekdays <- data.frame('days'=days, Month = month(days), week = week(days),nweek = rep(1,length(days)))
Run Code Online (Sandbox Code Playgroud)
结果是这样的
days week
2016-04-01 14
2016-04-02 14
2016-04-03 14
2016-04-04 14
2016-04-05 14
2016-04-06 14
2016-04-07 14
2016-04-08 15
2016-04-09 15
2016-04-10 15
2016-04-11 15
2016-04-12 15
Run Code Online (Sandbox Code Playgroud)
但是当从excel检查时,这就是我得到的
days week
2016-04-01 14
2016-04-02 14
2016-04-03 15
2016-04-04 15
2016-04-05 15
2016-04-06 15
2016-04-07 15
2016-04-08 15
2016-04-09 15
2016-04-10 16
2016-04-11 16
2016-04-12 16
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我确定我哪里出错了。
在此先多谢!!
您本身并没有做错任何事情,R(我认为您使用的是lubridate软件包)和Excel计算周数的方式只是有所不同。
以2016年1月的前几天为例。在2016年1月1日,星期五,R和Excel都会说这是第1周。
2016年1月3日,星期日:
尝试这个:
ifelse(test = weekdays.Date(days[1]) == "Sunday", yes = epiweek(days[1]), no = epiweek(days[1]) + 1) + cumsum(weekdays.Date(days) == "Sunday")
Run Code Online (Sandbox Code Playgroud)
这将测试第一天是否为星期日,并返回适当的星期数起始点,然后在每个星期日增加一个星期数。如果年份之间有重叠,则给出相同的星期数。
| 归档时间: |
|
| 查看次数: |
104 次 |
| 最近记录: |