列:テキストを複数列に分割...
単一のテキスト列を複数の列に分割します。
LabTalkがサポートしている関数のCatIndexおよびCatrowsをご参照ください。
text2cols ix:=[Book2]Sheet1!B delimiter:=pipe; // take pipe-separated strings in [Book2]Sheet1!B as input, output values to separate columns in new sheet
スクリプトからXファンクションにアクセスする場合、追加のオプションスイッチについてのページを参照してください。
表示 名 |
変数 名 |
I/O と データ型 |
デフォルト 値 |
説明 |
---|---|---|---|---|
テキスト列 | ix | 入力 vector<string> |
|
テキスト列。セルには、区切られたテキストの文字列が含まれています。区切り文字は、区切り文字にリストされているもののいずれかでなければなりません。 |
区切り文字 | delimiter | 入力 int |
|
区切り文字。次の値を使用します。
|
他の列を含める | nosplit | 入力 int |
|
出力で他の列をコピーするかどうかを指定します。
|
含める列 | other | 入力 range |
|
他の列を含めるがオンの場合に使用可能です。出力(解析済みデータ)とともにコピーされる他の列です。 |
出力 | rd | 出力 ReportData |
|
出力。区切られた文字列は、解析されて個別のセル(列)に分割されます。 |
このXファンクションは、区切られた値のセルまたは列を解析して新しい列に分割します。
このサンプルではカテゴリカルデータを含むASCIIファイルをインポートし、catrows()$関数を使用して各カテゴリの行インデックスを取得し、それらの行インデックスを新しい列に出力します。結果シートtext2colsには各カテゴリの行インデックスがリストされます。
// 空のワークブックを作成し、automobile.dat ファイルをインポート newbook; string fname$= system.path.program$ + "Samples\Statistics\automobile.dat"; impASC; // 2番目の列をカテゴリとして設定し、昇順にソート wks.col2.categorical.type=2; wks.col2.categorical.sort=1; // 2番目の列を範囲変数rAとする range rA = [automobile]automobile!"Make"; // 新しいブックを作成し、category関数を使用してrAのカテゴリを新しいブックのA列にコピー // B列には、各カテゴリが出現する行インデックスをパイプ区切りリストとして追加 newbook; col(A)=category(rA)$; col(B)=catrows(rA)$; // [Book2]Sheet1!B のパイプで区切られた文字列を入力として受け取り、<input>の新しいシートに値を出力 text2cols ix:=[Book2]Sheet1!B delimiter:=pipe nosplit:=1 other:=[Book2]Sheet1!A;