TSV (.tsv)
- ImportとExportはTSV形式を完全にサポートし,種々のデータ変換と形式オプションを提供する.
- ImportはCやFortranの表記法を含む一般的な数の形式を自動的に認識する.
- 小数点のない数は整数としてインポートされる.
予備知識
-
- MIMEタイプ:text/tab-separated-values
- TSV表データ形式.
- フィールドの区切り文字としてタブを使用して,数値,テキスト情報の記録を行として保管する.
- TSVはTab-Separated Valuesの頭字語である.
- テキスト形式.
- CSVに類似する.
ImportとExport
- Import["file.tsv"]は,ファイルに保管された行と列を表す文字列と数を含むリストのリストを返す.
- Import["file.tsv",elem]はTSVファイルから指定の要素をインポートする.
- Import["file.tsv",{elem,sub1,…}]はサブ要素をインポートし,部分的なデータのインポートに特に便利である.
- インポート形式はImport["file","TSV"]またはImport["file",{"TSV",elem,…}]で指定できる.
- Export["file.tsv",expr]は expr からTSVファイルを作成する.
- サポートされている式 expr:
-
{v1,v2,…} 1列のデータ {{v11,v12,…},{v21,v22,…},…} データの行のリスト array SparseArray,QuantityArray等の配列 tseries TimeSeries,EventSeries,TemporalDataオブジェクト Dataset[…] データ集合 - 一般的な情報は,以下の関数ページを参照のこと.
-
Import, Export ファイルからインポートする,あるいはファイルへエキスポートする CloudImport, CloudExport クラウドオブジェクトからインポートする,あるいはクラウドオブジェクトへエキスポートする ImportString, ExportString 文字列からインポートする,あるいは文字列へエキスポートする ImportByteArray, ExportByteArray バイト配列からインポートする,あるいはバイト配列へエキスポートする
Import要素
- 一般的なImport要素:
-
"Elements" ファイル中の有効な要素とオプションのリスト "Rules" 使用可能なすべての要素の規則のリスト "Summary" ファイルの概要 - データ表現要素:
-
"Data" 二次元配列 "Grid" Gridオブジェクトで表された表データ "RawData" 文字列の二次元配列 "Dataset" Datasetで表された表データ - ImportとExportはデフォルトで"Data"要素を使用する.
- データの部分的なインポートにおいて,すべてのデータ表現要素 elem は{elem, rows, cols}という形式で行と列の指定を取ることができる.rows と cols は以下のいずれでもよい:
-
n n 番目の行または列 -n 最後から数える n;;m n から m まで n;;m;;s n から m までステップ s で {n1,n2,…} 特定の行または列 ni - メタデータ要素:
-
"Dimensions" 行数と最大列数のリスト "MaxColumnCount" 列の最大数 "RowCount" 行数
オプション
- ImportとExportのオプション:
-
"EmptyField" "" 空のフィールドの表現方法 "TextDelimiters" "\"" 数値でないフィールドの区切りに使われる文字 - コンマと行区切りを含むデータフィールドは通常ダウブルクォート文字でラップされる.デフォルトではExportは区切り文字としてダブルクォート文字を使用する.別の文字は"TextDelimiters"を使って指定できる.
- テキストフィールドを区切るダブルクォート文字はデフォルトではインポートされない.
- Importオプション:
-
CharacterEncoding "UTF8ISOLatin1" ファイルで使用される生の文字コード "CurrencyTokens" {{"$", "", "", ""}, {"c", "", "p", "F"}} 数値的な値をインポートする際に省く通貨単位 "DateStringFormat" None DateString指定で与えられた日付の形式 "FillRows" Automatic 行を列の最大長まで埋めるかどうか "HeaderLines" 0 ヘッダであると仮定する行の数 "IgnoreEmptyLines" False 空白行を省くかどうか "NumberPoint" "." 小数点の文字列 "Numeric" Automatic 可能な場合にデータフィールドを数としてインポートするかどうか "SkipLines" 0 ファイルの最初の省く行数 - デフォルトでは,Importはデータが"UTF8"で符号化されたテキストであるとして解釈を試みる.ファイルに保存されたバイト列で"UTF8"で表せないものがある場合は,Importは代りに"ISOLatin1"を使用する.
- CharacterEncoding -> Automaticとすると,Importはファイルの文字コードの推測を試みる.
- "HeaderLines"と"SkipLines"は以下の設定が可能である:
-
n 省略またはDatasetヘッダとして使用する n 行 {rows,cols} 省略またはヘッダとして使用する行と列 -
n 省略またはDatasetヘッダとして使用する n 行 {rows,cols} 省略またはヘッダとして使用する行と列 - Importは"DateStringFormat"の指定に従ってフォーマットされた表の項目をDateObjectに変換する.
- Exportオプション:
-
Alignment None 表の列にデータがどのように並んでいるか CharacterEncoding "UTF8" ファイルで使用される生の文字コード "FillRows" False 行を列の最大長まで埋めるかどうか "TableHeadings" None 表の行と列の見出し - Alignmentが取り得る設定はNone,Left,Center,Rightである.
- "TableHeadings"は以下の値を取ることができる:
-
None ラベルなし Automatic 列と行に連続する整数ラベルを付ける {"col1","col2",…} 列ラベルのリスト {rhead,chead} 行と列に別々のラベルを指定する - Exportは,Wolframシステムが実行されているコンピュータシステムに従って行区切り文字を符号化する.
例題
すべて開くすべて閉じる例 (3)
スコープ (4)
Datasetをインポートする:
Valuesを使ってデータ集合からヘッダを削除する:
"HeaderLines"オプションを使って表見出しをインポートする:
TimeSeriesをインポートする:
EventSeriesをエキスポートする:
QuantityArrayをエキスポートする:
Import要素 (17)
Importオプション (10)
CharacterEncoding (1)
文字コードは$CharacterEncodingsの任意の値に設定できる:
"CurrencyTokens" (1)
"CurrencyTokens" -> Noneとすると,すべての通貨単位が含まれる:
"DateStringFormat" (1)
指定の日付形式を使って日付をDateObjectに変換する:
"Numeric" (1)
数を解釈するために"Numeric"->Trueを使用する:
"SkipLines" (1)
Exportオプション (7)
CharacterEncoding (1)
文字コードは$CharacterEncodingsの任意の値に設定できる:
"FillRows" (1)
"FillRows"->Falseを使って行の長さを維持する:
"TableHeadings" (1)
考えられる問題 (5)
古いバージョンのWolfram言語で生成されたTSVデータは,テキストフィールドの区切りが正しくないためにバージョン11.2で想定通りにインポートできないことがある:
"TextDelimiters"""を使うと,想定された結果が得られる:
デフォルトでは"TextDelimiters"にダブルクォートを使って完全配列がエキスポートされる:
TSVを11.2より前のバージョン形式でエキスポートするためには "TextDelimiters"""と"FillRows"Falseを使用する:
"nnnDnnn"または"nnnEnnn"といった形式の項目は科学表記の数として解釈される:
"Numeric"オプションを使用して解釈をオーバーライドする:
データの左上の角は,行と列の見出しを含むDatasetをインポートする際に失われる:
データの次元によってDatasetが異なる形となることもある: