週の始まりを日曜でなく、月曜にする

Exploratory、またはRでは、週に関する関数はどれも日曜始まりを前提としています。

例えば、列ヘッダーメニューから、

抽出 -> 曜日名

を下のように選ぶと、

以下のような関数が生成されます。

wday(FL_DATE, label = TRUE, abbr = TRUE)

これを実行すると、曜日の値が入った列が順序付きのカテゴリー・データ型であるFactorというデータタイプとしてできます。そして、その順序は以下のサマリー・ビューで見えるように、日曜始まりとなります。

また、チャート・ビューの下でピボットテーブルやチャートを使って、曜日を抽出すると以下のような順番で表示されます。

ちなみにピボットテーブルやチャートで曜日を抽出するときは、日時関数メニューから曜日を選びます。

しかし、時と場合によっては週は月曜から始まるようにしたいことがあるかもしれません。そこで、その方法を以下に簡単に説明します。

曜日を月曜から始める

2つやり方があります。1つ目はシステムレベルで設定するやり方です。もう一つは関数ごとに設定するやり方です。ほとんどの方にとっては、システムレベルで設定してしまうことで、他のすべてのオペレーションが自動的にその設定を反映するというやり方が便利だと思います。

A.スクリプトを使ってシステムレベルで設定する

まずは、新しいスクリプトを作ります。

スクリプトのエディターが開いたら、その中で以下のように記述し、保存します。

options(lubridate.week.start = 1)

うまく実行され保存されれば、それでオッケーです。

あとは、これから先すべての曜日に関連するオペレーションが、週は月曜から始まるという前提で行われます。

チャートで動きを確認

例えば、こちらのチャートは先ほどのものですが、X軸をみると月曜日から始まっているのがわかります。

また、週で切り捨てるという機能がありますが、こちらもデフォルトでは週は日曜から始まるという前提で行われます。

データラングリングで動きを確認

この新しい設定は、データラングリングするときに、曜日に関連した関数を使うときも同じように効いてきます。

例えば、列ヘッダーメニューから、

抽出 -> 曜日名

を下のように選ぶと、

以下のような関数が生成されます。

wday(FL_DATE, label = TRUE, abbr = TRUE)

実行するとできる列は、サマリー・ビューに行くと月曜日からはじまっているのが確認できます。

B. 関数レベルで設定

もし、何らかの理由で、システムレベルでは変えたくないが、一つ一つの関数レベルで変えたいという場合は、以下のように、“getOption(”lubridate.week.start“, 1)” という引数を使うことでできます。

wday(FL_DATE, label = TRUE, abbr = TRUE, week_start = getOption(“lubridate.week.start”, 1))

上記の例は、1という数字を設定していますが、これは月曜を意味します。

これを実行すると、以下の右側の列のように順番が月曜から始まっているのが確認できます。