簡體   English   中英

如何使用R檢測一個月的最后n個工作日

[英]how to detect last nth workdays of a month using R

我正在嘗試使用以下規則在基於日期列的data.table中創建一個新變量。

規則 :如果“日期”是一個月的最后3個工作日(可以是星期一至星期五的任何一天)之一,則將其編碼為“ 1”; 否則將其編碼為“ 0”。

以下是我如何查看結果的示例。 第三列包括編碼說明。

在此處輸入圖片說明

提前致謝!

這個怎么樣:

library(dplyr)

df <- data.frame(date=seq(as.Date("2017/01/01"), as.Date("2017/12/31"), "days"))
df$day <- weekdays(x = df$date)
df$month <- months(x = df$date)

true_flags <- df %>% 
  arrange(date) %>% 
  filter(day!='Sunday' & day!='Saturday') %>% 
  group_by(month) %>% 
  top_n(wt = date,n = 3) %>% 
  ungroup() %>% 
  transmute(date=date,flag=T)

df %>% left_join(y=true_flags,by = 'date')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM