gpt4 book ai didi

r - 多年来连续一周的过渡

转载 作者:行者123 更新时间:2023-12-04 00:36:35 24 4
gpt4 key购买 nike

我正在尝试使用 as.Date 计算相对于任何 origin 或基准日期的周偏移量。例如:

bd = as.Date("2013-12-29")
ad1 = as.Date("2014-01-01")
ad1w = as.numeric(strftime(ad1, format = "%W"))
ad2 = as.Date("2015-04-20")
ad2w = as.numeric(strftime(ad2, format = "%W"))

给出:ad1w = 0ad2w = 16。我希望 ad1wad2w 不是 0 和 16,而是一个偏移到 bd 的数字。可能吗?起源可以是任何日期。谢谢!

澄清一点。比方说:

bd = as.Date("2013-12-25")
ad1 = as.Date("2015-01-07")
ad2 = as.Date("2015-01-06")

bd 是 2013 年的第 51 周,ad1ad2 都是 2015 年的第 1 周。两个偏移量都应该是 54 周,没有四舍五入.

最佳答案

这就够了吗?

ad1w <- as.numeric(floor((ad1 - bd) /7))
ad2w <- as.numeric(floor((ad2 - bd) /7))

更新

使用 lubridate 你可以使用:

library(lubridate)

ad1w <- as.numeric(floor((ad1-lubridate::wday(ad1) - (bd-lubridate::wday(bd))) /7))
ad2w <- as.numeric(floor((ad2-lubridate::wday(ad2) - (bd-lubridate::wday(bd))) /7))

逻辑如下。将每个日期重新编码为前一周的最后一个日期,然后使用 as.numeric(floor((recoded_ad1 - recoded_bd)/7))

关于r - 多年来连续一周的过渡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29800880/

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