列:テキストを複数列に分割...
単一のテキスト列を複数の列に分割します。
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ファンクションにアクセスする場合、追加のオプションスイッチについてのページを参照してください。
この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;
wxcat