gpt4 book ai didi

r - 从 R 中的一年中获取某个工作日的日期

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

如何为一年中的每个星期一生成日期对象列表(POSIXct 或 lt)?

例如今年将是(年、月、日):

2012_01_02,
2012_01_09,
2102_01_16,
等等

最佳答案

编辑 :进一步思考,这里有一个更清晰的功能来做同样的事情:

getAllMondays <- function(year) {
days <- as.POSIXlt(paste(year, 1:366, sep="-"), format="%Y-%j")
Ms <- days[days$wday==1]
Ms[!is.na(Ms)] # Needed to remove NA from day 366 in non-leap years
}
getAllMondays(2012)

这是一个函数,它将执行更一般的任务 找到 任意年份的第一个星期一,然后列出它和该年的所有其他星期一。它使用 seq.POSIXt() 和参数 by = "week" (也可用于 seq.Date() )。
getAllMondays <- function(year) {
day1 <- as.POSIXlt(paste(year, "01-01", sep="-"))
day365 <- as.POSIXlt(paste(year, "12-31", sep="-"))

# Find the first Monday of year
week1 <- as.POSIXlt(seq(day1, length.out=7, by="day"))
monday1 <- week1[week1$wday == 1]

# Return all Mondays in year
seq(monday1, day365, by="week")
}

head(getAllMondays(2012))
# [1] "2012-01-02 PST" "2012-01-09 PST" "2012-01-16 PST" "2012-01-23 PST"
# [5] "2012-01-30 PST" "2012-02-06 PST"

关于r - 从 R 中的一年中获取某个工作日的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9166437/

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