2016-11-18 8 views
0

月のN番目の営業週を取得することはできますか?現在、私は次のコードを持っていますが、週末を考慮に入れています。たとえば、日付を2016-10-10とすると、今月の週は3となります。実際には、これは実際には月の第2営業日です。Nth Business Week月間

wk <- function(x) as.numeric(format(x, "%U")); 
cur.wom = wk(d) - wk(as.Date(cut(d, "month"))) + 1 
+0

"ビジネスウィーク"をより明示的に定義して、意味を正確に把握したい場合があります。 – thelatemail

+0

平日は....週末はありません – user1234440

+0

営業時間は5営業日ですか?または、毎週月曜日は、日にちに関係なく、新しい営業週を通知しますか? – thelatemail

答えて

1

私は、次のコードは、月曜日から金曜日のために働く必要がありますので、取り扱い週末をしたいどのようにあなたの質問から言うことができませんでしたが、あなたが望むよう、週末には行かないかもしれません。あなたが最初にすべきことは、これらが組み込ま曜日のようなものについての情報を持っているようPOSXltオブジェクトに値を変換である。

myDate <- as.POSIXlt("2016-10-10", format = "%Y-%m-%d") 

それはより曖昧であるので、あなたは、日付のformat文字列を変更する必要がありますフォーマットが年 - 月 - 日または年 - 日 - 月の場合の例

これで、次の式を使用してビジネスウィークの価値を得ることができます。

(myDate$mday - myDate$wday + 4) %/% 7 + 1 

mdayフィールドには、日付の月の日を含むとwdayは曜日を示す数値(日曜日0で始まる)が含まれています。 wdaymdayから差し引くと、同じ週内の任意の日に同じ番号が取得されます。 %/% 7は、数分を週に分割する整数除算を行います。 + 4は、毎週の値を調整し、%/% 7が適用されたときに、月が始まる曜日に関係なく、あなたが望む曜日を表示するようにします。最後の+ 1はデータを変換して、0ではなく、1で開始します。