gpt4 book ai didi

r - 计算一年中的周数(0-53)

转载 作者:行者123 更新时间:2023-12-03 21:24:07 25 4
gpt4 key购买 nike

我有一个包含位置和日期的数据集。我想将一年中的一周计算为数字(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

我知道有 strftime 函数用于计算一年中的一周,但只能使用星期一或星期日作为一周的第一天。
任何帮助将不胜感激。

最佳答案

只需将 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

这使用基于 0 的计数约定,因为这是 strftime 提供的,我们只是捎带该代码库,因此与 2013 年的情况一样,从周二开始的一年中的第一个星期五将是 1 周的结果。如果您想要基于 1 的约定,请将 1 添加到值中。 (从根本上说,日期格式的值是从“原点”开始的整数序列,因此它们不能真正识别年或周。添加 4 只会移动基础日期整数的引用系。)

编辑注释。根据 Gabor 的建议更改为添加三个策略。 .... 仍然没有解决如何处理上一年的最后一周的问题。

关于r - 计算一年中的周数(0-53),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15278128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com