新しい列の数式に選択した列を使用するやあ、
列を選択する必要があるスクリプトを生成しようとしています。 この選択により、数式を含む新しい列を作成します(選択された列を含む)。 これが私のアプローチです:
dt = Current Data Table ();
dt << New Table Variable( "Range", 2 );
New Window( "Select Column",
lb = Col List Box( all ), dt << New Table Variable( "Selected Column", lb <<get selected ),
Button Box( "Moving Average", dt <<New Column ("Movin Average", Numeric, Formula (:Range + "selected Column") )
));
私には2つの問題があります:
1.選択によってCoulumn変数を生成するにはどうすればよいですか?
2.この変数を数式で使用するにはどうすればよいですか? 「範囲」(数値)の場合は可能ですが、選択した列(文字)の場合はできません。
再:新しい列の数式に選択した列を使用するハイジム、これは素晴らしいスクリプトです。数式ボタンを追加して、数式列(Col Mean()...)を追加することはできますか?
再:新しい列の数式に選択した列を使用するありがとうございました!
再:新しい列の数式に選択した列を使用するこのコードは、Rangeの値が文字列ではないと文句を言っています。したがって、これを修正するために、以下のコードは、char()関数を使用して文字列であることを確認することにより、範囲の値と返される列名の両方を文字列に強制します。
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt << New Table Variable( "Range", 2 );
New Window( "Select Column",
lb = Col List Box(
Data Table( dt << get name ),
all,
min col( 1 ),
max col( 1 ),
dt << New Table Variable( "Selected Column", (lb << get selected )[1])
),
Button Box( "Moving Average",
Eval(
Substitute(
Expr(
dt << New Column( "Movin Average", Numeric, Formula( __formula__ ) )
),
Expr( __formula__ ), Parse( char(dt << get table variable( "Range" )) || " + :" || char((lb << get selected)[1]) )
)
)
)
);再:新しい列の数式に選択した列を使用するありがとう!
私がコードを見ると、それはまさに私が探しているものであるはずです。 しかし、私はエラーメッセージを受け取りました:
引数は、'Concat'のアクセスまたは評価で文字である必要があります。BadArgument((lb << get selected)[1])、dt << get table variable( "Range")|| / * ### * / "+:" || / * ### * /(lb<<選択される
)[1] / * ### * /
テーブル変数として、選択した列を取得しました。 ただし、新しい列の式を評価することはできません。
JMPバージョンの設定を変更する必要がありますか?
再:新しい列の数式に選択した列を使用するこれは、元のスクリプトが実行しようとしたと私が信じていることを実行するスクリプトの実例です。
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt << New Table Variable( "Range", 2 );
New Window( "Select Column",
lb = Col List Box(
Data Table( dt << get name ),
all,
min col( 1 ),
max col( 1 ),
dt << New Table Variable( "Selected Column", (lb << get selected )[1])
),
Button Box( "Moving Average",
Eval(
Substitute(
Expr(
dt << New Column( "Movin Average", Numeric, Formula( __formula__ ) )
),
Expr( __formula__ ), Parse( dt << get table variable( "Range" ) || " + :" || (lb << get selected)[1] )
)
)
)
);
今私が抱えている問題は、いくつかの項目を理解することです。
- Rangeの値と新しい列の名前のテーブル変数を作成するのはなぜですか?
- 指定した数式は実際に必要なものですか?別の列の値に数値2を追加しても、移動平均は得られません。現在の行と最後の2行の前の値の真の移動平均を作成するために、本当にやりたいことはありますか?