私のスクリプトでは、次のコードを使用して、すべての列のリストを文字列形式で取得します。
columnNames = dt << Get Column Names( string );
「For Each」ループを使用してそれらを反復処理できるようにするために、これが必要です。
For Each( {columnName, index}, columnNames, Column( dt, columnName ) << Set Name( columnName ||"SomethingHere" ) );ここで必要なのは、選択した列を取得して、それらに対して同じループを実行することだけです。
選択された列を取得する方法は 1 つだけ知っています。
columnNames = dt << Get Selected Columns;
ただし、文字列名ではなく列への参照を返します。 したがって、これを実行すると、次のようになります。
For Each( {columnName, index}, columnNames, Column( dt, columnName ) << Set Name( columnName ||"SomethingHere" ) );それは機能しません。
どうすればいいですか
1. For Each ループを書き換えて (For ループの代わりにこのループを使い続けたいと考えています)、列への参照も受け入れるようにします。
または
2. 列への参照を文字列のリストに変換します。
?
@ミゲロ、 @jthi - JMP テクニカル サポートは、スクリプト インデックスの更新をリクエストします。 共有していただきありがとうございます!
報告すると良いでしょう。 Scripting Index が不足していたときに誰がタグ付けされるべきだったのか覚えていないので、とりあえずタグ付けしましょう@ジェフ・パーキンソンそして@Ryan_Gilmore , << [選択された列の取得] に、スクリプト インデックスのオプションのオプション パラメーターがありません。
素晴らしい! **ピー音** 文書化されていません 
選択された列を取得するために (文字列) を追加 (スクリプト索引には文書化されていません...しかし、ヘルプには「もう少し」文書があります) dt<<選択されたプロパティの取得(<{プロパティのリスト}>) )
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Select Columns({:sex, :height});
sel_colnames = dt << Get Selected Columns(string);
show(sel_colnames); // sel_colnames = {"sex", "height"};
わかりました、次の方法で解決しました。
変更したくない、すでにスクリプト化された「For Each」ループを実行する前に、これを実行します。
For Each( {columnName, index}, columnNames, columnNames[index] = columnNames[index]<< Get Name );他にオプションはありますか?