從用戶輸入定義列公式嗨,
我試圖從用戶輸入定義一個新的列公式。 我嘗試了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 ) )
);Re:從用戶輸入定義列公式我不完全確定在用戶輸入的新創建的列中你想要什麼公式,但看看這個 JSL Cookbook文章 ,它給出了構建新列公式的幾種不同方法的示例。
Re:從用戶輸入定義列公式謝謝!非常有用的頁面。
Re:從用戶輸入定義列公式在...的幫助下 @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^ ) ) )" ) ) );