Rに慣れていて、たくさんのことを学びました。2つの日付の間の営業日を計算してください
私の販売データセットには、製品、bpid、日付があります。同じbpid(土曜日の土曜日の土曜日の除外日:&日曜日)の間のビジネスの違いを計算したいと思います。
製品またはbpidが変更された場合(または新しいbpid /製品が導入された場合)は、計算をスキップする必要があります。
df <- data.frame(product=c('milk','milk','milk','milk','eggs','eggs','eggs','eggs'),
bpid=c(400,400,500,500,400,400,500,500),
date=c("2016-08-03","2016-08-10","2016-08-04","2016-08-10","2016-08-10","2016-08-16","2016-08-11","2016-08-15"));
df$date <- as.Date(df$date, format = "%Y-%m-%d");
私の希望する結果は以下のようになります。 助けてください....
product bpid date compute-result
milk 400 2016-08-03 0
milk 400 2016-08-10 5
milk 500 2016-08-04 0
milk 500 2016-08-10 5
eggs 400 2016-08-10 0
eggs 400 2016-08-16 4
eggs 500 2016-08-11 0
eggs 500 2016-08-15 2
実データコード(結果の列で取得ゼロ)例えば
df <- data.frame(product=c('Keyt','Keyt','Keyt','Keyt','Keyt','Keyt'),
bpid=c(30057,30057,30057,30058,30058,30058),
date=c("2014-11-21","2015-05-05","2015-05-11","2014-10-16","2014-11-03","2016-03-15"));
df$date <- as.Date(df$date, format = "%Y-%m-%d");
cal <- Calendar(weekdays=c("saturday", "sunday"))
df$`compute-result` <- 0
idx <- seq(1, nrow(df),2)
df$`compute-result`[idx+1] <- bizdays(df$date[idx], df$date[idx+1], cal)
df
lubridate' 'で' wday() '関数をチェック。それは、あなたが歩み寄りに乗るのを助けるはずです。 – CephBirk
また、['bizdays'](https://cran.r-project.org/web/packages/bizdays/)パッケージまたは[' timeDate'](https://cran.r-project.org/web/packages/timeDate /)パッケージには、週末や休日を検索する機能があります。 – eipi10
RQuantLibパッケージを使用して、カレンダーのすべての休日を除外することができます – MFR