(JMP テーブル内の) セルをスクリプトにリンクしますか?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />やあ、
最初の列にテスト名を含む (分析されたデータの) テーブルを生成する JMP スクリプトがあります。
各テスト名を一連のグラフを生成するスクリプトにリンクできるかどうか疑問に思っていました。
それが可能かどうかは誰にもわかりますか?
ありがとう、
オリビア
Re: セル (JMP テーブル内) をスクリプトにリンクしますか?このアイデアを実装するのは本当に楽しかったです。私のスクリプトが選択されている複数の行を処理できる場合 (結合されたプロットのように)、すべての行が選択されるのを待つ方法はありますか (ctrl キーを押したままにするときなど)、スクリプトを起動する前に?
たとえば、行 1、3、5 を選択したい場合...現在、行 1 を選択する必要があります。これにより、スクリプトがすぐに起動され、スクリプトから生成されたウィンドウを閉じてから、行 3 を選択します (cntrl キーを押したままにします)。 )、すぐにスクリプトを起動し、スクリプトから生成されたウィンドウを閉じて (1 と 3 を組み合わせて)、行 5 を選択します (ctrl キーを押したままにします)...これにより、最後に 1、3、3 を組み合わせたスクリプトが起動します。および 5. 1、3、および 5 を選択して、スクリプトを実行することは可能でしょうか?
Re: セル (JMP テーブル内) をスクリプトにリンクしますか?ありがとう、それは本当に役に立ちました! 私はついにそれを機能させることができました
Re: セル (JMP テーブル内) をスクリプトにリンクしますか?以下のスクリプトは、行からグラフを作成するスクリプトを含む数式列を持つテーブル用です。
行が選択されると、選択された行のいくつかの列の内容がサブセット テーブルに作成され、オーバーレイ プロットでグラフ化できるように転置されます。 式の列にある元のスクリプトは、見た目が大きく異なり、テーブル スクリプトの下に含まれています。
(テーブル スクリプトをスクリプト ウィンドウにコピーし、スクリプトを実行します)
New Table( "結果テーブル",
行を追加( 5 ),
New Column( "分析",
キャラクター、
公称、
Set Values( {"ANOVA", "Apple", "Bannana", "Orange", "Peach"} )
)、
New Column( "結果 1",
数値、
連続、
Format( "ベスト", 12 ),
Formula( Random Uniform() )
)、
New Column( "結果 2",
数値、
連続、
Format( "", 9 ),
Formula( Random Uniform() )
)、
New Column( "結果 3",
数値、
連続、
Format( "ベスト", 12 ),
Formula( Random Uniform() )
)、
New Column( "結果 4",
数値、
連続、
Format( "ベスト", 12 ),
Formula( Random Uniform() ),
選択を設定
)、
New Column( "結果 5",
数値、
連続、
Format( "ベスト", 12 ),
Formula( Random Uniform() )
)、
New Column( "結果 6",
数値、
連続、
Format( "ベスト", 12 ),
Formula( Random Uniform() )
)、
New Column( "結果 7",
数値、
連続、
Format( "ベスト", 12 ),
Formula( Random Uniform() )
)、
New Column( "結果 8",
数値、
連続、
Format( "ベスト", 12 ),
Formula( Random Uniform() )
)、
New Column( "結果 9",
数値、
連続、
Format( "ベスト", 12 ),
Formula( Random Uniform() )
)、
New Column( "グラフを作成する数式を含む列",
数値、
連続、
Format( "ベスト", 12 ),
方式(
If( Selected( 行の状態() ),
評価(
パース(
名前のデフォルトはここ ( 1 ) です。
シンボルをクリア ( 1 );
dt0 = 現在のデータ テーブル();
rn = dt0 << 選択された行を取得します。
tn = dt0:分析[rn];
dt1 = Data Table( "結果テーブル" ) <<
サブセット(
出力テーブル( 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 ) << Get Journal;
New Window( "レポート ウィンドウ " || tn[1],
Text Box( "" のグラフ || tn[1] ),
Journal Box( journgraph1 )
);
閉じる ( dt1、保存しない );
閉じる ( dt2、保存しない );
)
)
)
)
)、
行の状態を設定する( [0, 0, 0, 0, 1] )
)
これは数式列に貼り付けるスクリプトです
( 1 ) ;
() ;
(選択済み(行の状態() )
(
(
( 1 ) ;
( 1 ) ;
=現在のデータ テーブル() ;
= dt0 <<選択した行を取得する;
= dt0 :分析[ rn ] ;
=データ表( 「結果表」 ) <<サブセット(
1 ] ) 、
0 ) 、
0 ) 、
//、見えない
;
= dt1 <<転置(
:結果1 、
:結果2 、
:結果 3 、
:結果4 、
:結果 5 、
:結果 6 、
:結果7 、
:結果 8 、
:結果 9 、
:コラム11
、
:分析[ rn ] ) 、 //これは数式に変換されません
1 ] || 「グラフ用」 ) //、見えない
;
=式( dt2 <<オーバーレイ プロット(よ(桁( 2 ) ) 、別々の軸( 1 ) 、コネクト スルーがありません( 1 ) ))) ;
=評価(グラフ1 ) <<ジャーナルを取得;
( "レポートウィンドウの" || tn [ 1 ] 、テキストボックス( 「のグラフ」 || tn [ 1 ])) 、ジャーナルボックス(ジャーングラフ1 ))) ;
( dt1 、保存しない) ;
( dt2 、保存しない) ;
//解析終了
//評価の終わり
; // if の終わり
Re: セル (JMP テーブル内) をスクリプトにリンクしますか?ありがとう
これらすべてをスクリプトに追加するのに問題があります。
私がやろうとしているのは、テーブルを取得してから列に追加することです
"選択済み(行の状態(行()))) 、名前=:テスト名[(現在のデータ テーブル() <<選択した行を取得する)[ 1 ]] ;
含む( "C:/Users/..../Tests/" ||評価(パース( :テスト名))) || 「.jsl」 ) ; 1 、 0 ) ;"
ここで、"Tests" は 2 番目のスクリプト フォルダーです (ユーザーがテーブルの行をクリックしたときに使用されるフォルダー)。
私の最初の問題は、引用符が問題を引き起こしているため、これを行う方法を見つけることができないことです.使用できます。 ファイルパスを介してアクセスされている 2 番目のスクリプトがあることを確認できますか (スクリプトはデスクトップにあります)。
繰り返しますが、あなたの助けに感謝します
オリビア
Re: セル (JMP テーブル内) をスクリプトにリンクしますか?まず、パス文字列を確認します。 最初の引数には、スクリプト ディレクトリへのパスのみを含める必要があるため、/ (スラッシュ) で終わります。
選択した TestName を変数に渡すには、より明示的にする必要があります。
名前=:テスト名[(現在のデータ テーブル() <<選択した行を取得する)[ 1 ]]
このコードは、列式 (以下の例を参照) または呼び出されたスクリプトで実行できます。
もしも(選択済み(行の状態(行()))) 、名前=:テスト名[(現在のデータ テーブル() <<選択した行を取得する)[ 1 ]] ;含む( 「C:/Users/..../your_script_folder/」 ||評価(パース( :テスト名))) || 「.jsl」 ) ; 1 、 0 ) ;
Re: セル (JMP テーブル内) をスクリプトにリンクしますか?
はい、それはまさに私がやりたいことです。
私が抱えている問題は、そのテスト名をJMPスクリプトに戻す必要があることです。これにより、関数が仕事をするためにRに送信できるようになります...
私はこれを試しました:
私のテーブルの追加の列で:
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 行目が選択されたときに実行されます (手動ですが、スクリプトによっても推測されます)。