列型の仕様
データ内の各列には必ず型が付与され、その列の性質を表現します。
型があることで、各列の状態を健全に保つことができます。
型の種類
データソース、分析プロジェクトにおける列の型を説明します。
数値型
数値のみで構成される列に付与可能な型であり、数値演算が可能になります。 なお、小数点以下の値は下 6 桁まで表示され、それ以下は切り捨て表示されます。 数値型列には、下記のアイコンが付与されます。
小数の有効数字
小数の有効数字は 17桁 までです。
17桁を超える場合は丸め誤差が生じる可能性があります。
文字列型
どんな値の列にも付与可能な型であり、列内の値を文字として扱うことで、文字列の結合や置換が可能です。
最も汎用性が高い型であり、全ての列は文字列型に変換が可能です。
文字列型列には、下記のアイコンが付与されます。
日付型
日付のみで構成される列に付与可能な型であり、2022-01-01のように、
- 4 桁の年
- 2 桁の月
- 2 桁の日
をハイフンで繋いだ形式で表記されます。 なお、nehan で扱える日付の範囲は 1677-09-21 ~ 2262-04-11 です。 日付型列には、下記のアイコンが付与されます。
日付として認識される形式
以下の形式が日付として認識されます。
対応している形式: 2024-01-15 ← ISO形式(推奨) 2024/01/15 ← スラッシュ区切り 15-01-2024 ← 日-月-年 2024-01-15 10:30:00 ← 日付時間
対応していない形式: 20240115 ← 8桁数字 2024-01 ← 年月のみ 2024 ← 年のみ時間型
時間を表す列に付与可能な型であり、12:34:56のように、
- 2 桁の時
- 2 桁の分
- 2 桁の秒
をコロンで繋いだ形式で表記されます。 また秒に関しては、小数点以下の値を含めることができ、例えば12:34:56.789のような表記も可能であり、小数点以下の値は下 6 桁まで表示され、それ以下は切り捨て表示されます。 なお、nehan で扱える時間の範囲は 00:00:00.000000 ~ 23:59:59.999999 です。 時間型列には、下記のアイコンが付与されます。
小数秒の精度
時刻・日付時間型への変換において、小数秒の桁数は 3桁(ミリ秒)・6桁(マイクロ秒)・9桁(ナノ秒) のみ対応しています。
対応: 12:30:45.123 / 12:30:45.123456 / 12:30:45.123456789非対応: 12:30:45.1 / 12:30:45.12 / 12:30:45.1234日付系型への変換
時間型の列を日付型、または日付時間型に変換することはできません(エラーになります)。 日付情報が必要な場合は、元データに日付を含めた形式で読み込み直してください。
日付時間型
日付と時間の両方を含む列に付与可能な型であり、2022-01-01 12:34:56のように、日付型と時間方をスペースで繋いだ形式で表記されます。
なお、nehan で扱える日付時間の範囲は 1677-09-21 00:12:43 ~ 2262-04-11 23:47:16 です。
日付時間型列には、下記のアイコンが付与されます。
列型の自動付与
ユーザーが任意の型を付与せずとも、nehan では列の値に応じて自動で型が付与されます。
自動型付けはデータソースの読み込み時、および分析プロジェクト内でのデータ処理時に行われます。
ファイル系データソース読み込み時
例えば、ファイルアップロードにて、CSV ファイルを読み込んだ場合、列の値に応じて自動で型が付与されます。
なお、型の自動付与は読み込み都度行われるため、型を固定したい場合は型の指定機能を利用してください。
分析プロジェクト内にて新規列を追加する際
データ処理機能利用時、新規列が追加される際、列の値に応じて自動で型が付与されます。
全欠損と型
データソース、分析プロジェクトにおいて、列の値が全て欠損値の場合、つまり全欠損の場合の挙動を説明します。
新規で全欠損列が作成された場合
分析プロジェクト内で新規で列が作成され、その列が全欠損の場合、その列は文字列型として作成されます。
また、ファイル系データソースの読み込み時、全欠損の列は文字列型として作成されます。
ただし、型を指定して列を作成、データソースを読み込んだ場合、その型が優先されます。
既存の列が全欠損になった場合
分析プロジェクト内で行ったデータ処理の結果、既存の列が全欠損になった場合、その列は親ノードの列型を継承します。
例えば、分析プロジェクト内のノードに下記のデータがあると仮定します。
| 名前 | 性別 | 身長(数値型) |
|---|---|---|
| 田中 | 男 | <NA> |
| 鈴木 | 女 | 160 |
| 佐藤 | 男 | <NA> |
このノードに対して条件で行をフィルタノードを接続し、性別列 = “男”の条件を適用します。
結果、下記のデータが得られます。
| 名前 | 性別 | 身長(数値型) |
|---|---|---|
| 田中 | 男 | <NA> |
| 佐藤 | 男 | <NA> |
身長列は処理の結果全欠損しましたが、親ノードの身長列の型が継承され、数値型となります。