非常に簡単に言うと、いくつかの変動チャートをモジュール化しようとしています。 これらのチャートをプロットしたい異なるパラメーターは合計 3 ~ 4 つあるため、関数にキーを渡してどの列をプロットするかを指示し、その列の特定の処理をセットアップさせる必要があります。 つまり、プロット操作の一部としてその列がどのような種類の変換を受ける必要があるかということです。
私が開始した方法は、文字列を渡し、一連の条件文を使用して変換する列の名前 (colname) を指定し、次に変換に適用する文字列 (yname) を指定することです。
これを行うためにいくつかの方法を試しましたが、どの解決策を使用しても、プロットを正しく機能させることができません。 変動チャートの Y をハードコーディングすると、指定されたフィルターに対して常に正しく機能するため、データが存在することはわかりますが、私の変数アプローチを使用してデータを選択することはできないようです。 これは私がこれまでにvarチャートのYラインで試したことです。
- Y( Transform Column( yname, Formula( Column(colname) ) ) ),
- JMP アラート: 無効な引数 (ダイアログ ボックス)
- すべての行に欠損値があるか除外されているため、グループにはデータがありません (ログ ウィンドウ)
- Y( Transform Column( yname, Formula( Column(dt,colname) ) ) ),
- JMP アラート: 無効な引数 (ダイアログ ボックス)
- すべての行に欠損値があるか除外されているため、グループにはデータがありません (ログ ウィンドウ)
- Y( Transform Column( yname, Formula( Column( As Column(colname)) ) ) ),
- JMP アラート: 未解決の列が 256 回発生しました (ダイアログ ボックス)
- 「無効な引数が 256 回あります。すべての行に欠損値があるか除外されているため、1 つの列またはグループにデータがありません (ログ)」
- Y( Transform Column( yname, Formula( Column( As Column(dt,colname)) ) ) ),
- JMP アラート: スコープ付きデータ テーブル アクセスにはデータ テーブル列または変数が 256 回必要です (ダイアログ ボックス)
- 無効な引数が 256 回発生しました。すべての行に欠損値があるか除外されているため、1 つの列またはグループにデータがありません (ログ)
- Y( Transform Column( yname, Formula( As Column(colname) ) ) ),
- JMP アラート: 未解決の列が 267 回発生しました (ダイアログ ボックス)
- (ログエラーなし)
- Y( Transform Column( yname, Formula( As Column(dt,colname) ) ) ),
- JMP アラート: スコープ付きデータ テーブル アクセスにはデータ テーブル列または変数が 267 回必要です (ダイアログ ボックス)
- (ログエラーなし)
私の試みでは明らかではないとしても、As Column() と Column() の違いが何であるかはまだ明確ではありません。 フォーラムでどちらかまたは両方の解決策を見たことがあるので、すべて試してみましたが、解決できませんでした。 私が確認した唯一の手がかりは、As Column() を単独で使用した場合、Column() でラップした場合 (256 件) と比較して、アクセス違反の数 (267 件) が異なるということです。 変換式の列名をハードコーディングすると 267 行が正しくプロットされるため、フィルターによって返される「正しい」行数は 267 であることがわかります。
さらに、colname変数を列に直接設定し(colname = :Rおよびcolname = ":R")、それらを直接使用したり、Column()とAs Column()の組み合わせでラップしたりするさまざまな組み合わせを試してみました。同様に機能しますが、成功しません。
私がここで何を間違っているかわかる人はいますか?
注: このコードそのものはテストされておらず、変数名は汎用化されています。
//
// Build plot functions
//
var_chart = Function( {dutname, ytype, stressname, bias, ver},
{chart, ax_min, ax_max, ax_step, len, colname, yname},
<BR /> ax_min = 0;<BR /> ax_max = 1;<BR /> ax_step = 0.1;<BR />
If(ytype == "r", (colname = "R"; yname = "R [Ω]"));<BR /> If(ytype == "l", (colname = "L"; yname = "L [H]"));<BR /> If(ytype == "c", (colname = "C"; yname = "C [F]"));
If(stressname == "s1", len = 1.1);
If(stressname == "s2", len = 2.2);
If(stressname == "s3", len = 3.3);
chart = Variability(
Y( Transform Column( yname, Formula( As Column(colname) ) ) ),
X( :X1, :X2, :X3, :X4 ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
Show Box Plots( 1 ),
<<SET scale=""></SET>