(JMP テーブル内の) セルをスクリプトにリンクしますか?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、
最初の列にテスト名を含む (分析されたデータの) テーブルを生成する JMP スクリプトがあります。
各テスト名をスクリプトにリンクして、一連のグラフを生成できないか考えていました。
それが本当に可能かどうか知っている人はいますか?
ありがとう、
オリビア
Re: (JMP テーブル内の) セルをスクリプトにリンクしますか?このアイデアを実装するのは本当に楽しかったです。私のスクリプトが選択されている複数の行を処理できる場合(結合されたプロットなど)、スクリプトを起動する前にすべての行が選択されるまで(Cntrlキーを押したときなど)待つ方法はありますか?
たとえば、行 1、3、5... を選択したい場合、現時点では行 1 を選択する必要があります。これによりスクリプトがすぐに起動され、スクリプトから生成されたウィンドウを閉じてから、行 3 を選択します (Cntrl キーを押したままにします)。 )、すぐにスクリプトを起動し、スクリプトから生成されたウィンドウを閉じます (1 と 3 を組み合わせたもの)、次に行 5 を選択します (Cntrl キーを押したままにします)... 最後に、1、3、を組み合わせたスクリプトを起動します。および 5. 1、3、5 を選択してスクリプトを実行することは可能でしょうか?
Re: (JMP テーブル内の) セルをスクリプトにリンクしますか?ありがとう、本当に助かりました! ようやく動作させることができました
Re: (JMP テーブル内の) セルをスクリプトにリンクしますか?以下のスクリプトは、行からグラフを作成するスクリプトを含む数式列を持つテーブル用です。
行が選択されると、選択された行のいくつかの列の内容がサブセット テーブルに作成され、オーバーレイ プロットでグラフ化できるように転置されます。 数式列にある元のスクリプトは、最初はかなり異なって見えますが、表のスクリプトの下に含まれています。
(テーブル スクリプトをスクリプト ウィンドウにコピーし、スクリプトを実行します)
New Table( "結果テーブル",
行を追加( 5 )、
新しいコラム( "分析",
キャラクター、
公称、
値の設定( {"ANOVA", "Apple", "Bannana", "Orange", "Peach"} )
)、
新しい列( "結果 1",
数値、
継続的、
Format( "ベスト", 12 ),
式(ランダムUniform())
)、
新しい列( "結果 2",
数値、
継続的、
フォーマット( "", 9 ),
式(ランダムUniform())
)、
新しい列( "結果 3",
数値、
継続的、
Format( "ベスト", 12 ),
式(ランダムUniform())
)、
新しい列( "結果 4",
数値、
継続的、
Format( "ベスト", 12 ),
式(ランダムUniform())、
選択したものを設定
)、
新しい列( "結果 5",
数値、
継続的、
Format( "ベスト", 12 ),
式(ランダムUniform())
)、
新しい列( "結果 6",
数値、
継続的、
Format( "ベスト", 12 ),
式(ランダムUniform())
)、
新しい列( "結果 7",
数値、
継続的、
Format( "ベスト", 12 ),
式(ランダムUniform())
)、
新しい列( "結果 8",
数値、
継続的、
Format( "ベスト", 12 ),
式(ランダムUniform())
)、
新しい列( "結果 9",
数値、
継続的、
Format( "ベスト", 12 ),
式(ランダムUniform())
)、
New Column( "グラフを作成する数式を含む列",
数値、
継続的、
Format( "ベスト", 12 ),
式(
If( Selected( Row State() )、
評価(
解析(
名前のデフォルトは Here( 1 );
シンボルをクリア( 1 );
dt0 = 現在のデータテーブル();
rn = dt0 << 選択された行を取得します。
tn = dt0:分析[rn];
dt1 = データ テーブル( "結果テーブル" ) <<
サブセット(
出力テーブル( tn[1] )、
選択された列( 0 )、
選択された行( 0 )、
行(rn)
);
dt2 = dt1 << 列(
:結果 1、
:結果 2、
:結果 3、
:結果 4、
:結果 5、
:結果6、
:結果 7、
:結果 8、
:結果9
)`;
グラフ1 = Expr(
dt2 << オーバーレイ プロット(
Y( 列( 2 ) )、
個別の軸( 1 )、
コネクトスルーが欠落しています( 1 )
)
);
journgraph1 = Eval(graph1 ) << ジャーナルを取得;
新しいウィンドウ( "レポート ウィンドウ " || tn[1],
テキスト ボックス( "グラフの " || tn[1] )、
ジャーナルボックス( journgraph1 )
);
Close( dt1、保存なし);
Close( dt2、保存なし);
)
)
)
)
)、
行の状態を設定( [0, 0, 0, 0, 1] )
)
これは数式列に貼り付けるスクリプトです
( 1 ) ;
() ;
(選択済み(行の状態() )
(
(
( 1 ) ;
( 1 ) ;
=現在のデータテーブル() ;
= dt0 <<選択された行を取得する;
= dt0 :分析[ん】 ;
=データ表( 「結果表」 ) <<サブセット(
1 】 ) 、
0 ) 、
0 ) 、
//、見えない
;
= dt1 <<転置(
:結果1 、
:結果 2 、
:結果 3 、
:結果 4 、
:結果5 、
:結果6 、
:結果7 、
:結果8 、
:結果9 、
:列 11
、
:分析[ん】 ) 、 //これは数式では変換されません
1 】 || 「グラフ用」 ) //、見えない
;
=式( dt2 <<オーバーレイプロット( Y (カラム( 2 ) ) 、個別の軸( 1 ) 、コネクトスルーが見つかりません( 1 ) )) ;
=評価(グラフ1 ) <<ジャーナルを取得;
( 「」のレポートウィンドウ||トン[ 1 ] 、テキストボックス( 「のグラフ」 ||トン[ 1 ]) 、ジャーナルボックス(ジャーナルグラフ1 )) ;
( dt1 、保存なし) ;
( dt2 、保存なし) ;
// 解析の終了
//評価の終了
; //ifの終わり
Re: (JMP テーブル内の) セルをスクリプトにリンクしますか?ありがとう
これらすべてをスクリプトに追加するのに問題があります。
私がやろうとしているのは、テーブルを取得して、次の列を追加することです。
」選択済み(行の状態(行())) 、名前=:テスト名[(現在のデータテーブル() <<選択された行を取得する)[ 1 ]] ;
含む( 「C:/ユーザー/..../テスト/」 ||評価(解析する( :テスト名)) || 「.jsl」 ) ; 1 、 0 ) ;"
ここで、「Tests」は 2 番目のスクリプト フォルダーです (ユーザーがテーブル内の行をクリックしたときに使用されるフォルダー)。
最初の問題は、引用符が問題を引き起こしているため、これを行う方法が見つからないということです。もう 1 つは、私がここでやっていることはすべて、一緒に仕事をしている他の人たちに使ってもらいたいツールの一部であるということです。使用できる。 ファイルパス経由でアクセスされる 2 番目のスクリプトがある (スクリプトはデスクトップ上にある) ことから、それは可能でしょうか?
改めて、ご協力ありがとうございました
オリビア
Re: (JMP テーブル内の) セルをスクリプトにリンクしますか?まず、パス文字列を確認します。 最初の引数にはスクリプト ディレクトリへのパスのみを含める必要があるため、/ (スラッシュ) で終わる必要があります。
選択した TestName を変数に渡すには、より明示的にする必要があります。
名前=:テスト名[(現在のデータテーブル() <<選択された行を取得する)[ 1 ]]
このコードは、列式 (以下の例を参照) によって、または呼び出されたスクリプト内で実行できます。
もし(選択済み(行の状態(行())) 、名前=:テスト名[(現在のデータテーブル() <<選択された行を取得する)[ 1 ]] ;含む( 「C:/ユーザー/..../your_script_folder/」 ||評価(解析する( :テスト名)) || 「.jsl」 ) ; 1 、 0 ) ;
Re: (JMP テーブル内の) セルをスクリプトにリンクしますか?
はい、まさにそれが私がやりたいことです。
私が抱えている問題は、関数がその仕事を行うためにテスト名を R に送信できるように、そのテスト名を JMP スクリプトに戻す必要があることです。
私はこれを試しました:
私のテーブルの追加の列:
If(Selected(Row State(Row())), Include("C:/Users/....jsl" || Eval(Parse(:TestName)) || ".jsl"); 1, 0)
そして、スクリプト ページで次のようにします。
tname = TestName << テキストを取得します。
rconn << Send(tname,R Name("tname"));
動作しないので明らかに何か間違っています...
Re: (JMP テーブル内の) セルをスクリプトにリンクしますか?テーブル内の行を選択してスクリプトアクションをトリガーしたい場合は、以下を参照することをお勧めしますこのデモJMP ファイル交換で。 Ian Cox がそのデモで使用したトリックを使用して行を選択することで、jsl で実行できるあらゆる種類のアクションを呼び出すことができます。
彼の例では、スクリプトは実際にはテーブル セル内の文字列ですが、テーブル スクリプトを呼び出すことができるはずです。あるいは、Include() 関数を使用してスタンドアロン スクリプトを呼び出すこともできます。
たとえば、文字列「testname」のセルの内容とまったく同じ名前のスクリプトを実行するには、非表示の列で以下の列式を試してください。
もし(選択済み(行の状態(行())) 、含む( 「あなたの道」 ||評価( :テスト名) || 「.jsl」 ) ; 1 、 0 )
行 3 の testname が「ANOVA」の場合、パス「yourpath」のディレクトリに保存されたスクリプト ANOVA.jsl は、行 3 が選択されたときに (手動で、またはスクリプトによっても実行されると思いますが) 実行されます。