<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、私はレポート内の分割表と関連する統計をユーザーが選択した列の割り当てに基づいて作成する動的スクリプトを作成しようとしています。これがJSLでの私の最初の試みなので、私は絶対の初心者です。ユーザーフォームとテーブルの作成は機能していますが、カッパ統計の10進数形式の設定などの簡単なことを行うために、生成されたレポートのさまざまな部分を参照する方法を理解するのに苦労しています。最終的には、表示された分割表から値を抽出して計算を行い、結果をレポートの他の場所に表示できるようにしたいと思います。添え字について読んできたので、その概念を使用してレポートを詳しく調べようとしていますが、それらを正しく使用する方法を理解することはできません。私はこの概念をよく理解する必要があることを知っています。なぜなら、ユーザーは2列から10列まで選択できるので、スクリプトは1から25個の分割表を作成することができるからです。後。ですから、それぞれに変数を代入するのが最善の方法かもしれませんが、テーブルの構築はForループのようなものを使用するのではなくJMPによって自動化されるため、どちらもわかりません。任意の助けは非常に高く評価されています私はまた、学習目的のための私の特定の質問(例えば、ベストプラクティスなど)とは無関係のJSLスクリプティングについてのフィードバックも大好きです。
私が苦労している部分は/ * ------ * /でコメントアウトされているセクションです。過度のコメントで申し訳ありませんが、私の最初のスクリプトとして、私の将来の自己が振り返ることができる概念をとらえようとしています。Windows 7上でJMP 10.0.1リリース2を使用しています。私が作業しているものの典型的なサンプルデータセットがJMP内にすでに見つからなかったので、ここではミニチュアバージョンを示します。
| SampleID | アッセイ#1 | アッセイ#2 | 参照 |
| 307HV093 | 負 | 負 | 負 |
| 307HV093 | 負 | 負 | 負 |
| 307HV094 | ポジティブ | ポジティブ | ポジティブ |
| 307HV094 | ポジティブ | ポジティブ | ポジティブ |
| 307HV095 | ポジティブ | ポジティブ | ポジティブ |
| 307HV095 | ポジティブ | ポジティブ | ポジティブ |
| 307HV096 | ポジティブ | ポジティブ | ポジティブ |
| 307HV096 | ポジティブ | ポジティブ | ポジティブ |
| 307HV097 | 負 | 負 | 負 |
| 307HV097 | 負 | 負 | 負 |
| 307HV098 | 負 | 負 | 負 |
// JMP 10スクリプティングガイドJMP 10の「表示ツリーの構築」pg 363に基づく
グローバルをクリア () ;
ここにデフォルトの名前 ( 1 ) ; //スコープ外のすべての変数はローカルです
もし ( isempty ( dt = 現在の日付 ()) 、 dt = 開いた ( pickfile ( 「入力データファイルを選択してください。」 ))) ;
// savedir = pickdirectory( "概要ファイルの保存先フォルダを選択してください:"); //これを後で使う
dt = currentDataTable () ; NC = ncol ( dt ) ; //テーブルの列数を取得する
lbWidth = 130 ;
未実装 = expr ( 新しい窓 ( 「まだ実装されていない機能」 、<< モーダル 、 ButtonBox ( "OK" ))) ; // << modalが何をするのかわかりません
clusterDlg = 新しい窓 ( 「2×2分割表と統計」 、 //カラムのユーザ選択用に新しいウィンドウを作成します
BorderBox ( 左 ( 3 ) 、上 ( 2 ) 、
VListBox (
テキストボックス ( 「アッセイの比較」 ) 、
HlistBox (
VListBox (
PanelBox ( 「列を選択」 、 //利用可能な列を一覧表示するボックス
colListData = ColListBox ( すべて 、幅 ( lbWidth ) 、 nLines ( 分 ( NC 、 10年 ))) //標準幅lbWidth(130)を使用してデータテーブル内のすべての列のリストボックス
) 、
) 、
PanelBox ( 「選択した列をロールにキャストする」 、 //解析用の列を指定するボックス
LineupBox ( NCol ( 2 ) 、間隔 ( 3 ) 、
ButtonBox ( 「アッセイ、コラム」 、
colListY << 追加 ( colListData << GetSelected )) 、 //選択した列を取り出してcolListYリストボックスに追加する
colListY = ColListBox ( 幅 ( lbWidth ) 、 nLines ( 5 )) 、 //行数は5行に制限されています。これは拡張できますが、ほとんどの研究では十分なはずです。
ButtonBox ( 「参照テストまたは比較テスト、列」 、
colListB << 追加 ( colListData << GetSelected )) 、 //参照として、または他の列と比較するための「比較」テストとして1列を指定します(これはXとなり、将来の統計に影響します)。
colListB = ColListBox ( 幅 ( lbWidth ) 、 nLines ( 5 )) //行数は5行に制限されています。追加の比較で結果が増えます
//順番は各アッセイの1番目の参照(Y)、各アッセイの2番目の参照などになります。
) 、
) 、
PanelBox ( "アクション" 、
LineupBox ( NCol ( 1 ) 、
ButtonBox ( "OK" 、
双子 = 新しい窓 ( 「緊急時対応結果」 || チャー ( フォーマット ( 日付として ( 今日 ()) 、 "ddMonyyyy" )) 、
タブボックス ( 「分割表」 、 HListBox (
続き = 不測の事態 ( // contはプラットフォーム(分析層)への参照です
Y ( colListB << アイテムを入手する ) 、
バツ ( colListY << アイテムを入手する )) ; //不測の事態
続き << 分割表 (
カウント ( 1 ) 、
合計% ( 0 ) 、
Col% ( 0 ) 、
行% ( 0 ) 、
期待される ( 0 ) 、
偏差 ( 0 ) 、
セルカイ二乗 ( 0 ) 、
コルカム ( 0 ) 、
Col Cum% ( 0 ) 、
ロースペルマ ( 0 ) 、
行合計% ( 0 ) 、
) ;
続き << サイズウィンドウ ( 500 、 700 ) ; //分割表で単語の切り捨てを止めたいが、大きくすることはできないようだ
続き << モザイクプロット ( 0 ) ; //消す
続き << テスト ( 0 ) ;
続き << 契約統計 ( 1 ) ; //オンにする
rcont = 続き << 報告書 ; //レポートへの参照
/ * rcont ["契約統計"、"ボーカーズテスト"] << close(1)
(i = 1、i <= nitems(rcont)、i ++の場合)
kap = rcont(分割表(i)["合意統計"、"カッパ係数"]);
kapset = kap [NumberColbox( "Kappa")];
kap << set format(8,3);
kap << set条件付き書式( "相関");
rcont(SendToReport(
ディスパッチ(//ディスパッチはもっとうまくいくだろうか?
{「契約統計」、「カッパ係数」}、
"カッパ"、
NumberColBox、
{フォーマット設定(8、3)、条件フォーマット設定( "相関")}
));、* /
) 、 // Hリストボックス
「2×2コンティンジェンシーのコピー」 、 // 2番目のタブ
// testval = reportcont [TableBox(1)];分割表の値を取得する方法を理解する必要がある
// matrixbox(testval <<行列として取得))
)) //タブボックス
) ; //ウィンドウ、";" "を削除するとダイアログウィンドウが閉じない
clusterDlg << ウィンドウを閉じる ) 、 // OKボタンボックス
ButtonBox ( "キャンセル" 、
clusterDlg << ウィンドウを閉じる ) 、
テキストボックス ( 「」 ) 、
ButtonBox ( 「削除」 、 // 2つのアッセイリストボックスから選択した列を削除します
colListY << 削除選択 ;
colListB << 削除選択 ;
) 、
ButtonBox ( "想起" 、未実装 ) 、 //プログラムされていません
ButtonBox ( "助けて" 、未実装 )) //プログラムされていません
) //パネルボックス
) // hlistbox
) // vlistbox
) // borderbox
) ; //ウィンドウ(クラスタダイアログ)