从星期日的一年中的第一天开始,到星期六的一年中的最后一天结束

雷迪左

我最近在R中处理日期时遇到问题。2015年的最后一天(2015-12-31)是星期四,这意味着如果我将星期日视为一周的开始日期,则该年的最后一周仅包含5天。现在,我希望将周五和周六的2016-01-01和2016-01-02与第53周相关联,并将2016年1月1日的第1周开始于周日。

require(lubridate)
range <- seq(as.Date('2015-12-26'), by = 1, len = 10)
df <- data.frame(range)
df$WKN <- as.numeric(strftime(df$range, format = "%U")) + 1
df$weekday <- weekdays(df$range)
df$weeknum <- wday(df$range)

这将给我以下结果:

df:
range      WKN   weekday   weeknum
2015-12-26  52  Saturday       7
2015-12-27  53    Sunday       1
2015-12-28  53    Monday       2
2015-12-29  53   Tuesday       3
2015-12-30  53 Wednesday       4
2015-12-31  53  Thursday       5
2016-01-01   1    Friday       6
2016-01-02   1  Saturday       7
2016-01-03   2    Sunday       1
2016-01-04   2    Monday       2

现在,我希望将数据框如下:

df:
range      WKN   weekday   weeknum
2015-12-26  52  Saturday       7
2015-12-27  53    Sunday       1
2015-12-28  53    Monday       2
2015-12-29  53   Tuesday       3
2015-12-30  53 Wednesday       4
2015-12-31  53  Thursday       5
2016-01-01  53    Friday       6
2016-01-02  53  Saturday       7
2016-01-03   1    Sunday       1
2016-01-04   1    Monday       2

谁能指出我要自动化的方向,这样我就不必每年更改代码了?

利斯特尔

如果您结帐?strptime,则可以使用几种不同的星期编号令牌format%V除了星期一从星期几开始,这里几乎可以正常工作,因此添加一个进行调整:

df$WKN <- as.integer(format(df$range + 1, '%V'))

df
##         range WKN   weekday weeknum
## 1  2015-12-26  52  Saturday       7
## 2  2015-12-27  53    Sunday       1
## 3  2015-12-28  53    Monday       2
## 4  2015-12-29  53   Tuesday       3
## 5  2015-12-30  53 Wednesday       4
## 6  2015-12-31  53  Thursday       5
## 7  2016-01-01  53    Friday       6
## 8  2016-01-02  53  Saturday       7
## 9  2016-01-03   1    Sunday       1
## 10 2016-01-04   1    Monday       2

或者,如果您按照标签所示使用dplyr,

library(dplyr)

df %>% mutate(WKN = as.integer(format(range + 1, '%V')))

返回相同的东西。isoweeklubridate功能是等效的,因此您也可以

library(lubridate)

df$WKN <- isoweek(df$range + 1)

或者

df %>% mutate(WKN = isoweek(range + 1))

两者都返回与as.integer(format(...))版本相同的结果

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取一年中的星期几,其中一周的第一天是星期日

来自分类Dev

如何使用SQL获取一年中的第一天和一年中的最后一天?

来自分类Dev

如何使用SQL获取一年中的第一天和一年中的最后一天?

来自分类Dev

在Objective-C中获取一年中的第一天

来自分类Dev

使用java.time查找一年中最后一周的第一天

来自分类Dev

Cron Expression忽略了一年中的第一个星期六,并在一年中的所有星期六运行

来自分类Dev

存储一年中每个月的第一天和最后一天javascript

来自分类Dev

使用JodaTime获取一年中每个月的第一天和最后一天的最简单方法

来自分类Dev

一年中的第一天公式导致结果不一致

来自分类Dev

从日期开始计算一年中的哪一天

来自分类Dev

一年中的最后一天自动更新记录

来自分类Dev

PHP:strftime() 与一年中的最后一天

来自分类Dev

查找一年中所有星期日的日期的脚本

来自分类Dev

计算一年中第一周的日期的一周的第一天的日期会更改月份

来自分类Dev

从一天中获取一年中每个月的日期

来自分类Dev

从 Python 中的 numpy 数组输入获取“一年中的某一天”数组

来自分类Dev

如何判断一年中的某一天是否已经过去?

来自分类Dev

python时间序列选择一年中的哪一天

来自分类Dev

Google文件-将日期转换成一年中的某一天

来自分类Dev

python熊猫时间序列选择一年中的哪一天

来自分类Dev

PHP Unixtimestamp 获取一年中的某一天

来自分类Dev

PARSE_DATETIME 格式与一年中的一天

来自分类Dev

在MySQL中是否有任何功能可以代表一年中的最后一天

来自分类Dev

python - 如何找到用户给定的一个月的第一天,用户给定的一年中的哪一天落在python中

来自分类Dev

如何在 KDB/Q 中获得一年的第一天?

来自分类Dev

getFullYear在一年的第一天前一年返回

来自分类Dev

星期一作为Gnome-Shell的第一天(而不是星期日)

来自分类Dev

星期一作为Gnome-Shell的第一天(而不是星期日)

来自分类Dev

使用MYSQL从一年中给定的一周(从星期日开始)的所有帖子总数中进行选择

Related 相关文章

  1. 1

    获取一年中的星期几,其中一周的第一天是星期日

  2. 2

    如何使用SQL获取一年中的第一天和一年中的最后一天?

  3. 3

    如何使用SQL获取一年中的第一天和一年中的最后一天?

  4. 4

    在Objective-C中获取一年中的第一天

  5. 5

    使用java.time查找一年中最后一周的第一天

  6. 6

    Cron Expression忽略了一年中的第一个星期六,并在一年中的所有星期六运行

  7. 7

    存储一年中每个月的第一天和最后一天javascript

  8. 8

    使用JodaTime获取一年中每个月的第一天和最后一天的最简单方法

  9. 9

    一年中的第一天公式导致结果不一致

  10. 10

    从日期开始计算一年中的哪一天

  11. 11

    一年中的最后一天自动更新记录

  12. 12

    PHP:strftime() 与一年中的最后一天

  13. 13

    查找一年中所有星期日的日期的脚本

  14. 14

    计算一年中第一周的日期的一周的第一天的日期会更改月份

  15. 15

    从一天中获取一年中每个月的日期

  16. 16

    从 Python 中的 numpy 数组输入获取“一年中的某一天”数组

  17. 17

    如何判断一年中的某一天是否已经过去?

  18. 18

    python时间序列选择一年中的哪一天

  19. 19

    Google文件-将日期转换成一年中的某一天

  20. 20

    python熊猫时间序列选择一年中的哪一天

  21. 21

    PHP Unixtimestamp 获取一年中的某一天

  22. 22

    PARSE_DATETIME 格式与一年中的一天

  23. 23

    在MySQL中是否有任何功能可以代表一年中的最后一天

  24. 24

    python - 如何找到用户给定的一个月的第一天,用户给定的一年中的哪一天落在python中

  25. 25

    如何在 KDB/Q 中获得一年的第一天?

  26. 26

    getFullYear在一年的第一天前一年返回

  27. 27

    星期一作为Gnome-Shell的第一天(而不是星期日)

  28. 28

    星期一作为Gnome-Shell的第一天(而不是星期日)

  29. 29

    使用MYSQL从一年中给定的一周(从星期日开始)的所有帖子总数中进行选择

热门标签

归档