一般的に、JMPはデータの再配置を容易にし、「非効率」は相対的な用語です。私が正しく理解していれば、ある(分析)プラットフォームからの結果を別の(グラフィカル)プラットフォームからの結果に追加したいと思うでしょう。最適なワークフローは詳細に依存します。
次のスクリプトは、上記の内容に沿ってランダムデータを作成します。実行できる場合は、選択した2つのプラットフォームから結果を再現するスクリプトを投稿すれば、より具体的な推奨事項を提供できるようになります。
NamesDefaultToHere(1);
// Make a data table
nr = 1000;
y = J(nr, 200, RandomNormal());
x = J(nr, 1, RandomUniform(1, 10));
o = J(nr, 1, RandomInteger(1, 6));
dt = AsTable(x||o||y);
dt << setName("Test");
Column(dt, 1) << setName("X");
Column(dt, 2) << setName("Overlay");誰もがこれとは少し違ったやり方でアプローチすると確信しています。しかし、上記の2つの表が出発点である場合、次のようなことをします。
NamesDefaultToHere(1);
// Data tables
data = DataTable("Test WORKFLOW.jmp");
stats = DataTable("Test WORKFLOW RESULT TABLE.jmp");
// Template expression for Graph Builder with text annotation
gbExpr =
Expr(
data << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :X ), Y( yTBD ), Overlay( :Overlay ) ),
Elements(Line(X, Y, Legend( 12 ), Error Interval( "None" ))),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Add Graphics Script( 2, Description( "Annotation" ), Text( {8, 0}, "interaction P Val: "||Char(Round(pValTBD, 3))))}
)
)
)
);
// Loop over 'Y' variables
lub = LineUpBox(NCol(1));
for(c=3, c<=NCol(data), c++,
yCol = Column(data, c);
pVal = Column(stats, 2)[c-2];
lub << append(Eval(Substitute(NameExpr(gbExpr), Expr(yTBD), yCol, Expr(pValTBD), pVal)));
);
// Reports in a Journal
nw = NewWindow("Report", <<JOURNAL></JOURNAL>
ケースに合わせてこのアウトラインを作成できるはずです。アノテーションを「より良い」場所に配置するためのロジックを含めることもできます。どのように機能するかわからない場合は、「ヘルプ>スクリプトガイド」およびJSLブックを参照してください。