---
title: Enum 定義
description: Enum 型の作成・管理方法。Manage Enums タブでの新規作成、列からの自動生成、値の順序設定、依存関係チェック、string 型からの変換手順を説明します。
priority: 0.6
---

# Enum 定義 {#enum-definitions}

Enum 型は、有効な値があらかじめ決まっているカテゴリデータを扱うためのデータ型です。許可される値の集合を定義します。

CSV 読み込みでは Enum 型は自動推論されません。Enum 定義を作成し、string 型の列を Enum 型に変換して使います。Enum 定義は同一[プロジェクト](project-management)内の複数のデータセットから参照できます（別のプロジェクトには引き継がれません）。1つの Enum 定義には最大50個の値を設定できます。50個を超えるカテゴリがある場合は string 型のまま使用してください。

## Manage Enums タブを開く {#opening-the-manage-enums-tab}

メニューバーから **Data > Manage Enums...** を選択すると、Manage Enums タブが開きます。このタブで Enum 定義の作成、編集、削除を行います。

![Manage Enums タブ](../shared/images/enum-definitions-tab.webp)

## Enum を手動で作成する {#creating-an-enum-manually}

### 新規作成 {#new-enum}

1. **+ New Enum** をクリック
2. Enum 名を入力
3. 値を入力する。入力した順番がそのまま Enum の値順序として記録される。この順序は、列を順序尺度に設定した場合にグラフの軸やソートに反映される
4. **+ Add Value** で値を追加
5. **Save** をクリック

### バリデーション {#validation-rules}

- Enum 名は必須。既存の Enum 名と重複できない
- 値は1つ以上必要
- 値の重複は不可
- 値の前後の空白は自動でトリムされる。大文字と小文字は区別され、`High` と `high` は別の値として扱われる

## 列から Enum を作成する {#creating-an-enum-from-a-column}

既存の string 列のユニーク値から Enum 定義を自動生成できます。

1. **Create from Column** をクリック
2. データセットを選択
3. 列を選択する。string 型の列のみ選択可能
4. Enum 名を入力する。デフォルトは `{列名}_enum`
5. プレビューでユニーク値の一覧、件数、割合を確認
6. **Create Enum** をクリック

値は出現頻度の降順にソートされます。ユニーク値が50を超える場合、出現頻度の高い上位50件のみが使用されます。プレビューに警告が表示されるので、対象の値を確認してください。

順序に意味があるカテゴリでは、作成後に必ず [Edit](#editing) で値の順序を確認してください。値の順序をグラフや統計量に反映するには、列を Enum 型に変換したうえで[順序尺度への変更](#changing-to-ordinal-scale)も必要です。

![Create from Column ダイアログ](../shared/images/enum-definitions-from-column.webp)

## Enum を編集・削除する {#editing-and-deleting-enums}

### 編集 {#editing}

Enum カードの **Edit** をクリックすると編集モードになり、名前の変更、値の追加・削除、順序の変更ができます。値の順序は、各値の右側の上下の矢印ボタンで変更します。

すでにこの Enum 型に変換済みの列がある場合、以下の制約があります。

- 名前は変更できません。変更したい場合は、対象列を一度 string 型に戻してから Enum 名を変更し、再度 Enum 型に変換してください
- 列のデータに残っている値は削除できません。先に[列の型変換](column-type-conversion)で対象列を string 型に戻し、不要な値を除外または置換してから再度 Enum 型に変換してください
- 順序を変更すると、変換済みの列が順序尺度に設定されている場合は確認ダイアログが表示されます
- 値の追加には制限がありません。ただし1つの Enum 定義に設定できる値の上限は50個のままです

順序の変更を保存すると、順序尺度に設定した列では、新しい順序が [基本統計量](basic-statistics)、Data Table のソート、グラフの凡例の並び順にすぐ反映されます。作成済みのグラフの軸の並び順は、列を軸に割り当てた時点の値順序を Category Order として保持しているため、自動では変わりません。新しい順序を軸に適用するには、グラフ設定パネルの Category Order を変更してください。

### 削除 {#deleting}

Enum カードの **Delete** をクリックすると、Enum 定義を削除できます。依存する列がある場合は削除できません。先に[列の型変換](column-type-conversion)で依存する列のデータ型を変更してください。

## string 列を Enum 型に変換する {#converting-string-columns-to-enum-type}

Enum 定義を作成した後、[列の型変換](column-type-conversion)で string 列を Enum 型に変換します。

1. Data Table で列ヘッダーを右クリックし、**Convert Column Types...** を選択
2. 変換したい列の **To** ドロップダウンで、作成した Enum 名を選択
3. **Preview** で変換結果を確認
4. **Apply** で変換を実行

変換結果は新しいデータセットとして作成されます。元のデータセットは変更されません。

string 列に Enum 定義へ含まれない値があった場合は、[列の型変換のエラー処理オプション](column-type-conversion#error-handling-on-error)に従って処理されます。**NULL** を選ぶと該当セルが NULL になり、**Exclude row** を選ぶと該当行が結果のデータセットから除外され、**Fail** を選ぶと変換が中止されます。大文字と小文字は区別されるため、表記が一致しない値は「Enum 定義に含まれない値」として扱われます。

順序のあるカテゴリでは、変換後に[順序尺度への変更](#changing-to-ordinal-scale)も必要です。

## 順序尺度とグラフへの影響 {#ordinal-scale-and-graph-ordering}

### 順序尺度への変更 {#changing-to-ordinal-scale}

Enum 型の列はデフォルトで名義尺度に設定されます。値の順序に意味がある場合は、Data Table で列ヘッダーを右クリックし、**Edit Scale of Measurement** から順序尺度に変更してください。測定尺度は[基本統計量](basic-statistics)で表示される項目の絞り込み基準として使われます。測定尺度全般については[データ型と測定尺度](concepts-data-types#measurement-scales)を参照してください。

### グラフの軸順序 {#graph-axis-ordering}

Enum 型の列を順序尺度に設定すると、グラフの軸と凡例（color、fill、shape などの aesthetic）の両方で Enum 定義の値順序が初期値として設定されます。名義尺度のままだと、軸も凡例もアルファベット順にソートされます。軸の表示順はグラフ設定パネルの Category Order から手動で変更できます。

[基本統計量](basic-statistics)で測定尺度ごとに表示される統計量の一覧は数値型（int64、float64）の列を前提としています。Enum 型の列では、名義尺度のままだと string 型と同じ度数集計のみが表示されます（ただし Enum 型では定義外の値が混入しない点が string 型と異なります）。順序尺度に変更すると、度数集計に加えて Enum 定義の位置順序に基づく min / max / median / 四分位点が計算されます。mean / std / skewness / ex. kurt は値間の距離が定義されないため計算できません。iqr（= Q3 − Q1）は値間の距離が定義されない順序尺度では意味を持たないため、計算しません。計算方法の詳細は [基本統計量 - 文字列型と Enum 型](basic-statistics#string-type) を参照してください。

## See also {#see-also}

- **[列の型変換](column-type-conversion)** - データ型の変換手順
- **[データ型と測定尺度](concepts-data-types)** - 測定尺度の統計的な意味
- **[Data Table](data-table)** - 測定尺度の変更
