gpt4 book ai didi

R:错误地将 ISO-Week 转换为 Date

转载 作者:行者123 更新时间:2023-12-01 23:32:30 25 4
gpt4 key购买 nike

我有一年、一个 ISO 周和一个工作日(2015 年,第 7 周,第 1 周 == 2015-02-09),我想将其转换为日期。

所以我这样做是这样的:

date <- "2015:7:1"

as.Date(date, format="%Y:%V:%u")
[1] "2015-03-25"

如您所见,我弄错了日期(今天)。当使用另一个格式字符串(%U 或 %W 而不是 %V)时,我得到“2015-02-16” - 一个星期太晚了,因为 %U 和 %W 从 0 开始计算周数。

%V 缺少什么?

最佳答案

问题是您可以使用 %V 进行输出,但不能使用输入。备注 ? strptime :

%V: Week of the year as decimal number (01–53) as defined in ISO 8601. If the week (starting on Monday) containing 1 January has four or more days in the new year, then it is considered week 1. Otherwise, it is the last week of the previous year, and the next week is week 1. (Accepted but ignored on input.)

所以,这意味着您可能应该使用 %W 并减去一周:

as.Date("2015:7:1", format = "%Y:%W:%u") - 7
[1] "2015-02-09"

然后注意 %V 是如何允许输出的:

strftime(as.Date("2015:7:1", format = "%Y:%W:%u") - 7, "%Y:%V:%u")
[1] "2015:07:1"

关于R:错误地将 ISO-Week 转换为 Date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29252793/

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