gpt4 book ai didi

r - 如何在两天之间以周为单位存在差异(即使它们很接近但属于不同的周)

转载 作者:行者123 更新时间:2023-12-04 04:32:56 26 4
gpt4 key购买 nike

我举个例子说清楚:

如果我们谈到 2006/2007,2006 年的最后一天是星期日,而 2007 年的第一天是星期一。
根据意大利(以及其他国家)的说法,它们属于不同的星期。

如何在 R 中获取此信息?

如果我这样做:

difftime(as.Date("2007-01-01"),as.Date("2006-12-31"),units="weeks")

我得到:0.1428571
...但我想知道一些方法来获得 1(因为它们相差 1 周)

最佳答案

你的问题是星期一应该是一周的第一天。 R 包通常将星期日视为一周的第一天。

我的解决方案使用 lubridate包装并减少一周中的一天。随着这个星期一变成星期日,一周的第一天 lubridate .然后我使用 floor_date获取一周的第一天和 difftime结果。

library(lubridate)
dates <-c(as.Date("2007-01-01"),as.Date("2006-12-31"))
weekdays(dates)
#[1] "Monday" "Sunday"
tempdates <-update(dates,wdays=wday(dates)-1)
weekdays(tempdates)
#[1] "Sunday" "Saturday"
floor1 <-floor_date(tempdates, "week")
difftime(floor1[1],floor1[2], units = "weeks")
#Time difference of 1 weeks

使用此解决方案,1 月 1 日和 2 日在同一周结束
dates <-c(as.Date("2007-01-02"),as.Date("2007-01-01"))
tempdates <-update(dates,wdays=wday(dates)-1)
floor1 <-floor_date(tempdates, "week")
difftime(floor1[1],floor1[2], units = "weeks")
#Time difference of 0 weeks

关于r - 如何在两天之间以周为单位存在差异(即使它们很接近但属于不同的周),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20268977/

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