テーブルから一度にすべての列を選択するcsv ファイルからインポートしたデータを含む複数のテーブルがあります。残念ながら、すべてのテーブルの長さが同じではなく、日によって長さが異なります。ただし、すべての列をデータ型文字に変換できるようにしたいのですが、個々の列を指定せずにこれを行うことができる jmp スクリプト内のコマンドはありますか (合計でいくつの列があるかわからないため)Re: テーブルからすべての列を一度に選択するすべての列名のリストを作成し、各列にプロパティを繰り返し割り当てる短いスクリプトを使用できます。Re: テーブルからすべての列を一度に選択するご返信ありがとうございます
それを実現するサンプルコードはありますか?
要するに、私がやろうとしているのは、すべての列を「文字型」に変換することです。
今のところ一番近いのは、このコードを使うことです
_________________________________
dt=DataTable("Log60");
cc=dt< ncols = N Items(cc);
これは「数値」である列の名前を返します。
_________________________________
スクリプトガイドには、上記のコードにリストされているすべての列を選択するために、このタイプのループを使用するように記載されています。
________________________
for(i=1,i<=ncols,i++,
cc(i)< ________________________
しかし、これは私には機能しません。無効な行番号 -1 と表示されます。Re: テーブルからすべての列を一度に選択する「cc(i)」の代わりに「cc[ i ]」を使うと私の場合はうまくいきます。変数と競合している可能性のある「cc」または「i」という名前の列がありますか?「cc[ i ]」を試してみてください。
追記:フォーラムのソフトウェアがスタイル設定に角括弧を使用しているようで、メッセージが正しく表示されませんでした。スペースを入れて試してみます。
メッセージは xan@jmp によって編集されました。Re: テーブルからすべての列を一度に選択する以下のスクリプト例は、現在のデータテーブル内のすべての列のデータ型を文字型に変換します。これは、このスレッドで以前に提案されたものよりも簡潔な提案です。
列をループ処理する場合、For() ループの前に列の数や列名を知る必要はありません。NCol() 関数はデータテーブルの列数を返します。Column() 関数を使用すると、インデックスで列を参照できます。
dt = Current Data Table();
For( i = 1, i <= N Col( dt ), i++,
Column( dt, i ) << Data Type( "Character" )
);
お役に立てば幸いです。
Re: テーブルからすべての列を一度に選択するぜひ試してみてください
dt=current data table();
::cc = ::dt << Get Column Names( Continuous );
::ncols = N Items( ::cc );
For( ::i = 1, ::i <= ::ncols, ::i++,
::name = ::cc[::i];
::cc[::i] << Data Type( Character );
Current Data Table() << Run Formulas;
);