gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 09:28:33 24 4
gpt4 key购买 nike

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

df$dates

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

df[,'WeekStart']= manipulation

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

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

最佳答案

使用函数 strftime基本 R 方法。

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

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

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/32763491/

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