区切られた文字列を取り、それを解析して複数列に分割します。
LabTalkがサポートしている関数のCatIndexおよびCatrowsをご参照ください。
ダイアログボックスはユーザインタフェースのメニューコマンドからは利用できません。他のXファンクションダイアログと同様に、スクリプトまたはコマンドウィンドウを開き、次のように入力してEnterキーを押します。
text2cols -d
スクリプトでのアクセスについては、次の項コマンドラインでの使用法をご参照ください。
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;
キーワード:文字列の処理, カテゴリ, catindex, catrows