ユーザー入力から列式を定義するこんにちは、
ユーザー入力から新しい列式を定義しようとしています。 Eval()、Eval Insert()、Parse()のさまざまな組み合わせを試しましたが、成功しませんでした。 入力は、列または列のリスト、およびスカラーのいずれかです。 以下は最小限の例です。 助言がありますか?私はJMP14を使用していますが、このソリューションがJMP12以上で機能することを願っています。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Define new column.
dt << New Column( "Mean for Each Age and Sex Group",
Formula( Col Mean( :height, :age, :sex ) )
);
// Define user input.
a = 2;
c1 = :height;
c2 = {:age, :sex};
// Define new column from user input.
dt << New Column( "Mean for Each Age and Sex Group 2",
Formula( Col Mean( a * c1, c2 ) )
);再:ユーザー入力から列式を定義するユーザー入力から新しく作成された列にどの式が必要か完全にはわかりませんが、これを見てください JSLクックブックの記事 、新しい列式を作成するいくつかの異なる方法の例を示します。
再:ユーザー入力から列式を定義するありがとう!非常に便利なページ。
再:ユーザー入力から列式を定義するからの助けを借りて @ih の入力は、ここに興味がある人のためのソリューションです...
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Define user input.
a = 2;
c1 = Column( "height" );
c2 = {:age, :sex};
// Define new column from user input.
input = Concat( "As Column( \!"", c1 << Get Name, "\!" )" );
If( N Items( c2 ) > 0,
For( i = 1, i <= N Items( c2 ), i++,
input = Insert( input, Concat( ", ", "As Column( \!"", Char( c2[i] ), "\!" )" ) )
)
);
Eval( Parse( Eval Insert( "dt << New Column( \!"Mean for Each Age and Sex Group 2\!", Formula( ^a^ * Col Mean( ^input^ ) ) )" ) ) );