gpt4 book ai didi

r - 查找数据框的最近星期一

转载 作者:行者123 更新时间:2023-12-02 04:42:42 29 4
gpt4 key购买 nike

我有一个数据框对象,在其中的字段中,我有一个日期:

df$dates

我需要添加一个“周开始”列,即

df[,'WeekStart']= manipulation

周开始日期是该周星期一的日期。即:今天是 2015 年 9 月 24 日星期四,条目为“9 月 21 日”。下周四,即 2015 年 1 月 10 日,将是“9 月 28 日”。

我看到有一个 weekday() 函数可以将一天转换为星期几,但是我该如何处理这个最近的星期一

最佳答案

base R 方法与函数 strftime

df$Week.Start <- dates-abs(1-as.numeric(strftime(df$dates, "%u")))

这可以是单行代码,但我们将创建一些变量来查看发生了什么。日期的 %u 格式模式将星期几返回为单个十进制数。我们可以将该数字转换为 numeric 并从我们的日期中减去距离。然后我们可以从日期列中减去该向量。

day_of_week <- as.numeric(strftime(df$dates, "%u"))
day_diff <- abs(1-day_of_week)
df$Week.Start <- dates-day_diff
# dates Week.Start
# 1 2042-10-22 2042-10-20
# 2 2026-08-14 2026-08-10
# 3 2018-11-23 2018-11-19
# 4 2017-08-21 2017-08-21
# 5 2022-05-26 2022-05-23
# 6 2037-05-27 2037-05-25

数据

set.seed(7)
all_dates <- seq(Sys.Date(), Sys.Date()+10000, by="days")
dates <- sample(all_dates, 20)
df <- data.frame(dates)

关于r - 查找数据框的最近星期一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36155731/

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