Table (.dat)
予備知識
-
- 一般表データ.
- 表としてフォーマットされた数値・テキスト情報を保管する.
- ユーザ定義のフィールド・レコード分離,フィールド区切り,通貨トークン,数値形式をサポートする.
- テキスト形式.
ImportとExport
- Import["file.dat"] はファイルに保存されている行と列を表す文字列や数を含むリストのリストを返す.
- Import["file.dat",elem]はTableファイルから指定された要素をインポートする.
- Import["file.dat",{elem,subelem1,…}]はサブ要素 subelemiをインポートする.これは部分データのインポートに役に立つ.
- Import["file.dat",{{elem1,elem2,…}}]は複数の要素をインポートする.
- インポート形式はImport["file","Table"]またはImport["file",{"Table",elem,…}]で指定できる.
- Export["file.dat",expr]は exprからTableファイルを生成する.
- サポートする式 exprは以下を含む:
-
{v1,v2,…} 一列のデータ {{v11,v12,…},{v21,v22,…},…} 行のリストのデータ array SparseArray,QuantityArrayなどの配列 tseries TimeSeriesオブジェクト,EventSeriesオブジェクトまたはTemporalData オブジェクト Dataset[…] データ集合 Tabular[…] Tabularオブジェクト - 一般的な情報は,以下の関数ページを参照のこと.
-
Import, Export ファイルからインポートする,あるいはファイルへエキスポートする CloudImport, CloudExport クラウドオブジェクトからインポートする,あるいはクラウドオブジェクトへエキスポートする ImportString, ExportString 文字列からインポートする,あるいは文字列へエキスポートする ImportByteArray, ExportByteArray バイト配列からインポートする,あるいはバイト配列へエキスポートする
要素
- 一般的なImport要素:
-
"Elements" ファイル中の有効な要素とオプションのリスト "Summary" ファイルの概要 "Rules" 使用可能なすべての要素の規則のリスト - データ表現要素:
-
"Data" 行と列を表す二次元配列 "EventSeries" EventSeriesとしての表データ "Grid" Gridオブジェクトとして表される表データ "Tabular" Tabularオブジェクトとして表される表データ "TimeSeries" TimeSeriesとしての表データ - ImportとExportはデフォルトで"Data"要素を使う.
オプション
- ImportとExportのオプション:
-
"TextDelimiters" Automatic 非数値フィールドを区切るのに使われる文字列または文字列のリスト - デフォルトではExportはフィールド区切りを含むテキストフィールドをダブルクォート文字で区切る.
- "TextDelimiters"を明示的に設定すると,Exportはテキストフィールドを区切るのに常に指定の文字列トークンを使用し,事実上は区切り文字のリストを巡回する.
- "TextDelimiters"->{"<",">"}とすると,Exportはテキストフィールドを<>で囲む.
- テキストフィールドを区切るダブルクォート文字は,デフォルトではインポートされない.
- Importオプション
-
ByteOrdering Automatic バイトの順序 CharacterEncoding "ISOLatin1" ファイルで使用される生の文字コード "CurrencyTokens" {{"$", "
", "
", "
"}, {"c", "
", "p", "F"}}数値的な値をインポートする際に省略する通貨単位 "DateStringFormat" None DateString指定で与えられる日付の書式 "FieldSeparators" {" ","∖t"} 列を区切る文字列トークン "HeaderLines" 0 ファイルの最初の省略する行数 "IgnoreEmptyLines" False 空白行を無視するかどうか "LineSeparators" {"∖r\n","∖n","\r"} 行を区切る文字列トークン "NumberPoint" "." 小数点文字列 "NumberSigns" {"-","+"} 正および負の数の符号に使われる文字列 "Numeric" True 可能な場合にデータフィールドを数としてインポートするかどうか "RepeatedSeparators" True フィールド区切りを単一の区切り文字として解釈するかどうか "TimeColumn" Automatic "EventSeries"要素および"TimeSeries"要素での時間に使用する列 - CharacterEncoding -> Automaticとすると,Importはファイルの文字コードの推測を試みる.
- Importは"DateStringFormat"オプションの指定に従ってフォーマットされた表の項目を,{y,m,d,h,m,s}という形式のDateObject表現に変換する.
- 空白行や空白文字のみが含まれる行は,デフォルトでは空白のリストに変換される."IgnoreEmptyLines"をTrueに設定すると,Importは空白行を省略する.
- "Numeric"->Falseとすると,文字列はファイルにある形式でインポートされる.
- "LineSeparators"のデフォルトの設定では,Importは行区切り文字コードの一般的な慣習をすべて自動的に認識する.
- Exportオプション:
-
Alignment None 表の列内にデータをどのように整列させるか ByteOrdering Automatic バイトの順序 CharacterEncoding "UTF8" ファイルで使用される生の文字コード "FieldSeparators" "\t" 列を区切るのに使われる文字列トークン "TableHeadings" None 表の列と行の見出し - Alignmentに使用できる設定は,None,Left,Center,Rightである.
- "TableHeadings"は以下の値に設定できる:
-
None ラベルなし Automatic 列と行に連続した整数ラベルを与える {"col1","col2",…} 列ラベルのリスト {rhead,chead} 行と列の区切りラベルを指定する - ExportはWolfram言語が実行されているコンピュータシステムの慣習に従って行区切り文字を符号化する.
例題
すべて開く すべて閉じる例 (4)
Tableファイルからデータをインポートする:
Import["ExampleData/isomerization.dat", "HeaderLines" -> 6]//ShortTabularオブジェクトとしてデータをインポートする:
Import["ExampleData/isomerization.dat", "Tabular", "HeaderLines" -> 6]Import["ExampleData/isomerization.dat", "Summary"]ExportString[RandomReal[10, {4, 3}], "Table"]スコープ (8)
Import (3)
Import["ExampleData/buildings.dat", "Elements"]縦線をフィールド区切り文字に使用している表データファイルをインポートする:
Import["ExampleData/buildings.dat", "FieldSeparators" -> " | "] // Grid日付形式が指定されている場合,Importは日付をWolfram言語のDateObject指定に変換する:
ImportString["01/19/00
05/18/02
12/14/04", "Table", "DateStringFormat" -> {"Month", "/", "Day", "/", "YearShort"}]Export (5)
UTF-8符号化の通貨トークンを含むテキストファイルを作成する:
Export["exchangerate.txt", "$1.00 ¥116.65 €0.7509"]このファイルをインポートするとき,通貨トークンは自動的に省略される:
Import["exchangerate.txt", "Table", CharacterEncoding -> "UTF8"]Wolfram言語はTable形式のエキスポートの際,自動的に式をリストのリストに変換する:
ExportString[{1, {1, 2, 3}}, "Table"]ImportString[%, "Table"]Table形式のエキスポートでは,Real値にCFormを使う:
ExportString[{{5.0}}, "Table"]ExportString[RandomReal[10, {4, 3}], "Table"]Export["grid.dat", | | | |
| - | --------------------------------------------- | - |
| 1 | x - 1 | 2 |
| 2 | (x - 1) (x + 1) | 3 |
| 3 | (x - 1) (x^2 + x + 1) | 4 |
| 4 | (x - 1) (x + 1) (x^2 + 1) | 4 |
| 5 | (x - 1) (x^4 + x^3 + x^2 + x + 1) | 4 |
| 6 | (x - 1) (x + 1) (x^2 - x + 1) (x^2 + x + 1) | 6 |
| 7 | (x - 1) (x^6 + x^5 + x^4 + x^3 + x^2 + x + 1) | 4 |]Import[%]ExportStringを使って,フォーマットされた配列を生成する:
ExportString[ {{10, 1000000, 100}, {1, 10, 10000}}, "Table", "FieldSeparators" -> " ", Alignment -> Left]Import要素 (7)
"Data" (2)
Import["ExampleData/buildings.dat", "Data", "FieldSeparators" -> " | "]Import["ExampleData/buildings.dat", "FieldSeparators" -> " | "]Import["ExampleData/buildings.dat", "FieldSeparators" -> " | "]//TextGrid"EventSeries" (1)
ファイルからEventSeriesとしてデータを取得する:
Import["ExampleData/buildings.dat", "EventSeries", "FieldSeparators" -> " | ", "HeaderLines" -> Automatic]"Grid" (1)
表形式のファイルから Gridとしてデータをインポートする:
Import["ExampleData/buildings.dat", "Grid", "FieldSeparators" -> " | "]"Tabular" (1)
ファイルからTabularオブジェクトとしてデータを取得する:
Import["ExampleData/buildings.dat", "Tabular", "FieldSeparators" -> " | ", "HeaderLines" -> Automatic]"TimeSeries" (1)
ファイルからTimeSeriesとしてデータを取得する:
Import["ExampleData/buildings.dat", "TimeSeries", "FieldSeparators" -> " | ", "HeaderLines" -> Automatic]Importオプション (12)
CharacterEncoding (1)
文字コードは $CharacterEncodingsから任意の値を設定できる:
input = "é";ImportString[input, "Table", CharacterEncoding -> "UTF8"]ImportString[input, "Table", CharacterEncoding -> "ISOLatin1"]"CurrencyTokens" (1)
"DateStringFormat" (1)
ImportString["01/19/00
05/18/02
12/14/04", "Table"]日付形式を指定して,日付をDateObject に変換する:
ImportString["01/19/00
05/18/02
12/14/04", "Table", "DateStringFormat" -> {"Month", "/", "Day", "/", "YearShort"}]"FieldSeparators" (1)
"HeaderLines" (1)
"IgnoreEmptyLines" (1)
"LineSeparators" (1)
"NumberPoint" (1)
デフォルトでは,不動小数点データの小数点の文字の指定に"."が使われる:
tab = ImportString["\"1,1\" a
\"2,53\" b", {"Table", "Tabular"}]tab["ColumnTypes"]"NumberPoint" オプションを使って不動小数点データの小数点文字を指定する:
tab = ImportString["\"1,1\" a
\"2,53\" b", {"Table", "Tabular"}, "NumberPoint" -> ","]tab["ColumnTypes"]"NumberSigns" (1)
"Numeric" (1)
デフォルトでは,Importは数を解釈する:
ImportString["a b c
1 2 3", {"Table", "Data"}]//InputForm"Numeric"->Falseを使うと,すべてを文字列としてインポートする:
ImportString["a b c
1 2 3", {"Table", "Data"}, "Numeric" -> False]//InputForm"RepeatedSeparators" (1)
"TimeColumn" (1)
デフォルトでは,"TimeSeries"要素および"EventSeries"要素の時間列が自動的に選択される:
Import["ExampleData/buildings.dat", "TimeSeries", "FieldSeparators" -> " | ", "HeaderLines" -> Automatic]"TimeColumn"オプションを使って時間列を指定する:
Import["ExampleData/buildings.dat", "TimeSeries", "FieldSeparators" -> " | ", "HeaderLines" -> Automatic, "TimeColumn" -> "Year"]Exportオプション (4)
Alignment (1)
ExportString[{{10, 1000000, 100}, {1, 10, 10000}}, "Table"]ExportString[{{10, 1000000, 100}, {1, 10, 10000}}, "Table", Alignment -> Left]ExportString[{{10, 1000000, 100}, {1, 10, 10000}}, "Table", Alignment -> Center]CharacterEncoding (1)
文字コードは$CharacterEncodingsから任意の値を設定することができる:
input = "é";ExportString[input, "Table", CharacterEncoding -> "UTF8"]ExportString[input, "Table", CharacterEncoding -> "ISOLatin1"]"FieldSeparators" (1)
"TableHeadings" (1)
ExportString[{{3, "a"}, {5, "b"}, {7, "c"}}, "Table", "TableHeadings" -> {c1, c2}]ExportString[{{3, "a"}, {5, "b"}, {7, "c"}}, "Table", "TableHeadings" -> {{r1, r2, r3}, {c1, c2}}]列と行の連続した整数ラベルを使ってデータをエキスポートする:
ExportString[{{3, "a"}, {5, "b"}, {7, "c"}}, "Table", "TableHeadings" -> Automatic, "Backend" -> "Table"]関連するガイド
-
▪
- 基本形式 ▪
- 日付と時刻 ▪
- インポートとエキスポート ▪
- 全形式のリスト ▪
- リスト操作 ▪
- 数値データ ▪
- 文字列操作 ▪
- 表とスプレッドシート形式 ▪
- 時系列と事象系列の形式
履歴
1999 で導入 (4.0) | 2019 で更新 (12.0) ▪ 2025 (14.2) ▪ 2026 (15.0)