値の順序をセットする方法

このノートでは「値の順序をセット」する方法を紹介いたします。

Character型とFactor型

一般的にカテゴリーの情報は「Character型」として扱われ、以下の都道府県のように、Character型のデータには、連続性や順序関係があるとは言えません。

一方で、同じカテゴリーでも、以下のように「小-中-大」といった形で、カテゴリー型であるにも関わらず、実際に順序関係を持っているカテゴリーも存在します。

そこで、Character型に、内在的な順序関係の情報を付与した「Factor(順序付きカテゴリー))」というデータ型があります。

Factor型のデータを利用するメリットは多数ありますが、例えば「春-夏-秋-冬」のように内部的な順序関係を持ったFactor型のデータを使うと、可視化をしたときにカテゴリーが内部的に持っている順序関係をもとに並べることが可能なことは、最もわかりやすいメリットの1つです。

なお、各カテゴリーに付与された順序(順番)の情報を「レベル」と呼び、一番最初のカテゴリーのレベルは「1」で、順序が進むごとにレベルは上がっていきます。

値の順序をセットする5つの方法

値の順序をセットするときには、以下の5つの方法を、UIから選択できます。

  • 手動で値を選択
  • 値の頻度をもとに
  • 元のデータ順
  • 別の列の値をもとに
  • 順序を反転

手動で値を選択

「手動で値を選択」では、自身の手でカテゴリーの順序を、それぞれ設定します。

Character型の列ヘッダーメニューから「値の順序をセット」の「手動で値を選択」を選択すると、以下の「計算を作成」のダイアログが表示されます。

計算エディタ内に入力されているfct_relevel関数は、手動で順序を設定するための関数です。

こちらのダイアログの中では、レベルが低い順にカテゴリーの順序の設定をすることが可能です。

例えば、以下は出張頻度という列に対して、"なし"、"たまに"、"頻繁"の順序を設定している例です。

「手動で値を選択」の詳細につきましては、以下のノートで紹介していますので、ご参考ください。

  • カテゴリーの値の順序を手動で設定したい - リンク

値の頻度をもとに

「値の頻度をもとに」では各カテゴリーの登場頻度をもとに、自動的にカテゴリーに順序を設定します。

Character型の列ヘッダーメニューから「値の順序をセット」の「値の頻度をもとに」を選択すると、以下のように「計算を作成」のダイアログが表示されます。

fct_infreq関数は、関数内で指定した列内のカテゴリーの頻度をもとに、順序を設定する関数です。この関数がどのように順序を設定するのかを簡単に紹介します。

例えば、以下は1行が1人の従業員を表すデータを使って、従業員の数を可視化したチャートです。

通常、X軸(カテゴリー)の並びは、英語の場合はアルファベット、平仮名・カタカナの場合は50音順になり、漢字は文字コード順で決まります。

fct_infreq関数は各カテゴリーの頻度をもとに順序を決める関数のため、「研究開発」、「人事」、「営業」の順で順序が決まるわけです。

元のデータ順

「元のデータ順」では現在のデータの並び順をもとに、カテゴリーの順序を設定します。

Character型の列ヘッダーメニューから「値の順序をセット」の「元のデータ順」を選択すると、以下のように「計算を作成」のダイアログが表示されます。

fct_inorder関数は、現在のデータの並び順をもとにカテゴリーの順序を設定する関数です。例えば、上記の場合、現在のデータの「氏名」列のデータの並び順で、氏名に順序を設定することになります。

また、具体的な利用シーンを1行が日本の歴代の内閣総理大臣を表していて、各総理大臣が就任順に並んでいるデータを使って紹介します。

このデータを使って、歴代総理大臣の在職日数のチャートを作りたいときには、総理大臣の氏名に順序関係を持たせる必要があります。

幸い、今回のデータは歴代総理大臣の就任順にデータが並んでいますので、データの並び順をもとに順序関係を設定することができれば、期待しているような順序関係を追加することができるわけです。

別の列の値をもとに

このようなときに利用するのが、「元のデータ順」になるわけです。

「別の列の値をもとに」では別の列の「値」をもとにカテゴリーの順序を設定します。

Character型の列ヘッダーメニューから「値の順序をセット」の「元のデータ順」を選択すると、以下のように「計算を作成」のダイアログが表示されます。

fct_reorder関数は、別の列の値をもとに、カテゴリーの順序を設定する関数で、fct_reorder(順序を設定する列, 順序を決めるための列 )といった形で記述をして利用します。

例えば以下のデータは1行が1人の従業員を表しているデータです。

この会社では従業員IDが通し番号になっておらず、ランダムな文字列になっています。

こういったデータがあったときに、「別の列の値をもとに」では、「勤続日数」という別の列の値の大きさをもとに順序を設定することが可能です。

このようなデータを使って、fct_reorder(従業員ID, 勤続日数)と記述をすると、勤続日数が大きい(長い)順に、従業員IDにカテゴリーの順序を設定することが可能です。

順序を反転

「順序を反転」はFactor型としてすでに設定済みの順序を逆転するときに利用します。

Factor型の列ヘッダーメニューから「値の順序をセット」の「順序」を選択すると、以下のように「計算を作成」のダイアログが表示されます。

fct_rev関数は、対象列の現在設定されいる順序を反転する関数です。

例えば、下記は1行が1人の内閣総理大臣を表していて、就任順に総理大臣が並んでいるデータです。

またこのデータでは、総理大臣の氏名がFactor型になっていて、就任順に順序が設定されています。

こういったデータを使って総理大臣の指名を使って可視化をすると、就任順に各総理大臣の可視化が可能です。

一方で、現在のように、就任が古い総理大臣から新しい総理大臣の順ではなく、新しい総理大臣から古い総理大臣の順に順序を設定しなおしたいこともあるかもしれません。

そういったときに、fct_rev関数を利用することで、期待している内容にデータを変更することが可能なわけです。

Export Chart Image
Output Format
PNG SVG
Background
Set background transparent
Size
Width (Pixel)
Height (Pixel)
Pixel Ratio