TSV (.tsv)

予備知識

    • 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,},}データの行のリスト
    arraySparseArrayQuantityArray等の配列
    tseriesTimeSeriesEventSeriesTemporalDataオブジェクト
    Dataset[]データ集合
  • 一般的な情報は,以下の関数ページを参照のこと.
  • Import, Exportファイルからインポートする,あるいはファイルへエキスポートする
    CloudImport, CloudExportクラウドオブジェクトからインポートする,あるいはクラウドオブジェクトへエキスポートする
    ImportString, ExportString文字列からインポートする,あるいは文字列へエキスポートする
    ImportByteArray, ExportByteArrayバイト配列からインポートする,あるいはバイト配列へエキスポートする

Import要素

  • 一般的なImport要素:
  • "Elements" ファイル中の有効な要素とオプションのリスト
    "Rules"使用可能なすべての要素の規則のリスト
    "Summary"ファイルの概要
  • データ表現要素:
  • "Data"二次元配列
    "Grid"Gridオブジェクトで表された表データ
    "RawData"文字列の二次元配列
    "Dataset"Datasetで表された表データ
  • ImportExportはデフォルトで"Data"要素を使用する.
  • データの部分的なインポートにおいて,すべてのデータ表現要素 elem{elem, rows, cols}という形式で行と列の指定を取ることができる.rowscols は以下のいずれでもよい:
  • nn 番目の行または列
    -n最後から数える
    n;;mn から m まで
    n;;m;;sn から m までステップ s
    {n1,n2,}特定の行または列 ni
  • メタデータ要素:
  • "Dimensions"行数と最大列数のリスト
    "MaxColumnCount"列の最大数
    "RowCount"行数

オプション

  • ImportExportのオプション:
  • "EmptyField"""空のフィールドの表現方法
    "TextDelimiters""\""数値でないフィールドの区切りに使われる文字
  • コンマと行区切りを含むデータフィールドは通常ダウブルクォート文字でラップされる.デフォルトではExportは区切り文字としてダブルクォート文字を使用する.別の文字は"TextDelimiters"を使って指定できる.
  • テキストフィールドを区切るダブルクォート文字はデフォルトではインポートされない.
  • Importオプション:
  • CharacterEncoding"UTF8ISOLatin1"ファイルで使用される生の文字コード
    "CurrencyTokens"{{"$", "£", "¥", "€"}, {"c", "¢", "p", "F"}}数値的な値をインポートする際に省く通貨単位
    "DateStringFormat"NoneDateString指定で与えられた日付の形式
    "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オプション:
  • AlignmentNone表の列にデータがどのように並んでいるか
    CharacterEncoding"UTF8"ファイルで使用される生の文字コード
    "FillRows"False行を列の最大長まで埋めるかどうか
    "TableHeadings"None表の行と列の見出し
  • Alignmentが取り得る設定はNoneLeftCenterRightである.
  • "TableHeadings"は以下の値を取ることができる:
  • Noneラベルなし
    Automatic列と行に連続する整数ラベルを付ける
    {"col1","col2",}列ラベルのリスト
    {rhead,chead}行と列に別々のラベルを指定する
  • Exportは,Wolframシステムが実行されているコンピュータシステムに従って行区切り文字を符号化する.

例題

すべて開くすべて閉じる

  (3)

TSVをインポートする:

TSVファイルをヘッダを含むDatasetとしてインポートする:

式の配列をTSVにエキスポートする:

スコープ  (4)

Datasetをインポートする:

Valuesを使ってデータ集合からヘッダを削除する:

"HeaderLines"オプションを使って表見出しをインポートする:

TimeSeriesをインポートする:

EventSeriesをエキスポートする:

QuantityArrayをエキスポートする:

Import要素  (17)

"Data"  (6)

TSVファイルを値の二次元リストとしてインポートする:

これはデフォルト要素でもある:

TSVファイルの一行をインポートする:

TSVファイルの特定の行をインポートする:

TSVファイルの最初の3行をインポートする:

TSVファイルの一つの行と列をインポートする:

TSVファイルから一列をインポートする:

"Dataset"  (3)

TSVファイルをDatasetとしてインポートする:

"HeaderLines"を使って最初の行を列見出しに使用する:

"SkipLines"を使って興味のあるデータだけをインポートする:

"Dimensions"  (1)

TSVファイルから次元を取得する:

ファイル内のすべての行が同じ列数であるわけではない場合,最大列数が使用される:

"Grid"  (1)

TSVデータをGridとしてインポートする:

"MaxColumnCount"  (1)

TSVファイルから列の最大数を取得する:

"RawData"  (3)

TSVデータを生の文字列としてインポートする:

"Data"と比較する:

"RawData"に対してはデフォルトでは"Numeric"->Falseが使用される:

"Numeric"->Trueを使用する:

"RawData"に対してはデフォルトでは"FillRows"->Trueが使用される:

"FillRows"->Falseを使用する:

"RowCount"  (1)

TSVファイルの行数を取得する:

"Summary"  (1)

TSVファイルの概要:

Importオプション  (10)

CharacterEncoding  (1)

文字コードは$CharacterEncodingsの任意の値に設定できる:

"CurrencyTokens"  (1)

通貨単位は自動的に省略される:

"CurrencyTokens" -> Noneとすると,すべての通貨単位が含まれる:

"DateStringFormat"  (1)

指定の日付形式を使って日付をDateObjectに変換する:

デフォルトでは変換は行われない:

"EmptyField"  (1)

TSVデータの空のフィールドのデフォルト値を指定する:

"FillRows"  (1)

"Data"要素については,行の長さは自動的に維持される:

行を充填する:

"RawData"要素については,デフォルトで配列全体がインポートされる:

"HeaderLines"  (1)

デフォルトでは,行と列はどれも見出しであるとは想定されない:

列見出しを指定する:

行見出しを指定する:

行と列の見出しを指定する:

"IgnoreEmptyLines"  (1)

"IgnoreEmptyLines"を使ってインポートされたデータからデータの入っていない行を削除する:

"Numeric"  (1)

数を解釈するために"Numeric"->Trueを使用する:

デフォルトではすべてが文字列としてインポートされる:

"SkipLines"  (1)

TSVファイルはコメント行を含んでいることがある:

コメント行を省略する:

コメント行を省略し,次の行をDatasetの見出しとして使用する:

"TextDelimiters"  (1)

デフォルトのテキスト区切りはダブルクォートである:

テキスト区切りにはその他の文字も使用できる:

Exportオプション  (7)

Alignment  (1)

デフォルトでは位置揃えのために文字は加えられない:

左揃え列の値:

中央揃えの値:

CharacterEncoding  (1)

文字コードは$CharacterEncodingsの任意の値に設定できる:

"EmptyField"  (1)

デフォルトでは空の要素は空の文字列としてエキスポートされる:

空の要素に別の値を指定する:

"FillRows"  (1)

デフォルトでは完全配列がエキスポートされる:

"FillRows"->Falseを使って行の長さを維持する:

"TableHeadings"  (1)

列のカスタム見出しを使ってデータをエキスポートする:

列と行のカスタム見出しを使ってデータをエキスポートする:

列と行の連続する整数ラベルを使ってデータをエキスポートする:

"TextDelimiters"  (2)

非数値要素のデフォルトのテキスト区切りはダブルクォートである:

別の区切り文字を指定する:

テキスト区切りが挿入されないようにするためには"TextDelimiters"->""を使用する:

デフォルトでは数値的要素には区切り文字は挿入されない:

アプリケーション  (1)

ヨーロッパの国々とその人口のリストをTSVファイルにエキスポートする:

データをインポートし戻し,式に変換する:

考えられる問題  (5)

古いバージョンのWolfram言語で生成されたTSVデータは,テキストフィールドの区切りが正しくないためにバージョン11.2で想定通りにインポートできないことがある:

"TextDelimiters"""を使うと,想定された結果が得られる:

デフォルトでは"TextDelimiters"にダブルクォートを使って完全配列がエキスポートされる:

TSVを11.2より前のバージョン形式でエキスポートするためには "TextDelimiters""""FillRows"Falseを使用する:

"nnnDnnn"または"nnnEnnn"といった形式の項目は科学表記の数として解釈される:

"Numeric"オプションを使用して解釈をオーバーライドする:

データの左上の角は,行と列の見出しを含むDatasetをインポートする際に失われる:

データの次元によってDatasetが異なる形となることもある: