異なるIDセルからデータセルをコピー&ペーストするにはどうすればいいですか?こんにちは、
この記事にはデータテーブルの例があります。同じ列のフェーズBからフェーズAにProTestセルから情報をコピーする必要があります。しかし、最初に私は規則に従ってTest_IDを一致させる必要があります。
A相B相
1 11
3 13
5 15
7 17
9 19
データが不足しているため、参加者数が異なります。
どうしたらいいですか。
どうもありがとう!
再:どのように異なるIDセルからデータセルをコピー&ペーストするのですか?おっとっと!スクリプトは常にフェーズAである最初の値だけを取得しています。そのため、追加のフィルター&を使用してステートメントを変更します。Phase == "B"
xx = dt << get rows where(:Subject_ID ==uid & :Test_ID == tid & :Phase=="B");
再:どのように異なるIDセルからデータセルをコピー&ペーストするのですか?すごい、 @ gzmorgan0 !!働いた!
これらのコマンドの詳細はどこで確認できますか。行where()とnrow()を取得します。そして他の人たちは行と列から完全なコントロールを持つべきですか?JMPがベクトルをスクロールするのを制限したい場合に備えて、nrow()はその中の整数を受け入れますか?
私は自分の問題に適応しようとするでしょう... _ / \ _
どうもありがとう!!
再:どのように異なるIDセルからデータセルをコピー&ペーストするのですか?おっとっと!スクリプトは常にフェーズAである最初の値だけを取得しています。そのため、追加のフィルター&を使用してステートメントを変更します。Phase == "B"
xx = dt << get rows where(:Subject_ID ==uid & :Test_ID == tid & :Phase=="B");
再:どのように異なるIDセルからデータセルをコピー&ペーストするのですか?こんにちは @ gzmorgan0
あなたの解決をありがとう!1つのスコアだけがフェーズBからフェーズAにコピーできませんでした。それはTest_id = 9(等しいID)です。理由がわからなかった。
あなたの台本は添付されています。
どうもありがとう!
再:どのように異なるIDセルからデータセルをコピー&ペーストするのですか?JMPの連想配列を調べてください。連想配列をキー付きリストと考えてください。キーとそれに関連する値を定義します。キーは、文字列、式、リスト、10進数値以外のほとんどすべて、整数で構いません。 下記の修正されたスクリプトを参照してください。他のスクリプト言語では、連想配列は辞書と呼ばれます。私はそれを頻繁に使います。
あなたの他の質問に対する答えはイエスです。フィルタ変数を追加してください。
がんばろう。
Names Default to Here(1);
dt = Data Table("example2_modified");
decode_aa = Associative Array({1,2,5,8,9}, {20,22,55,18,9});
For(i=1, i<=nrow(dt), i++,
if (:Phase[i] =="A",
uid = :Subject_ID[i];
tid = decode_aa[ :Test_ID[i] ];
xx = dt << get rows where(:Subject_ID ==uid & :Test_ID == tid);
if(nrow(xx)==1,
:ProTest[i] = :ProTest[xx[1]]
);
); //end if Phase
); // end For i再:どのように異なるIDセルからデータセルをコピー&ペーストするのですか?ブリリアント、 @ gzmorgan0 !:)
2つ質問があります。
1。もっと "filters"や "By"を追加したい場合は、もっと変数(例えば、uid、tid)を作成し、それらを "get rows where()"関数に挿入し、& "Column name == 'を追加する必要があります。新しい変数 '"
2。Test_idが "sum 10"のような論理シーケンスとして定義できない場合は、たとえば "For looping statement"の前(または内部)でフェーズAの各Test_idを関連付ける行列を作成することが可能であると考えてください。フェーズBに?このようにして、ユーザーは両方のフェーズでID間の関連付けを定義できます。
どうぞよろしくお願いします。
ベスト!
シモンズ:それはこの記事の中で以下の関連付けのための提案で囲まれています、そして私はそこにあなたのスクリプトを加えました:
フェーズAフェーズB
1 20
2 22
5 55
8 18
9 9
再:どのように異なるIDセルからデータセルをコピー&ペーストするのですか?あなたのテーブルがソートされていて素敵であっても、このスクリプトは何も想定せず、対応するProTestが存在しない可能性さえも許します。
Names Default to Here(1);
dt = Data Table("example2");
For(i=1, i<=nrow(dt), i++,
if (:Phase[i] =="A",
uid = :Subject_ID[i];
tid = :Test_ID[i] +10;
xx = dt << get rows where(:Subject_ID ==uid & :Test_ID == tid);
if(nrow(xx)==1,
:ProTest[i] = :ProTest[xx[1]]
);
); //end if Phase
); // end For i