私は異なる人々のために2つの異なる日付を持っています. 最初の列 (A) は人名です。 2 番目の列は (B = インデックス イベントの日付) で、3 番目の列は (C = 介入の日付) です。 4 番目の列は、2 つの日付の差 (D) "BC/ in days(1)" です。
私の質問は、JMP に各人 (A) の D の特定の値を選択させる方法です。 次の時間枠で値を選択する必要があります。
1- 指数イベント日 (B) より前の D の最も近い値。 ある人が次の日付差の値を持っているとしましょう。0、-1、-10。 この場合ゼロが欲しい
2- A から 2 週間以内の D の最初の値 (0 日から 14 日まで) ある人が 2、8、14 を持っているとします。 2が欲しい
3- A から 2 週間後の D の最初の値 (15 日以上) 人が 17、25、35 を持っているとしましょう。 17が欲しい
これをより明確にするために、サンプル データ テーブルを共有できる可能性はありますか? Tables...Anonymize 機能を使用すると、PII や専有情報を共有できない場合に、簡単に共有できます。
やあ、
Jed が言及しているように、より多くのコンテキストが優れていますが、私はあなたが望むものを理解していると思います.
(1) の場合、最大値ですが、ゼロ以下の差の間のみです。
ケース (2) の場合、最小値ですが、0 から 14 までの差の中だけです。
(3) の場合、最小値ですが、15 以上の差の間のみです。
これが必要な場合は、それぞれの場合で同じアイデアを使用できます。
1) 欠落させたくないデータを動的に設定し、
2) 欠損データを無視して、データの最大値または最小値を計算します。
以下のコードでは、各式は同じ構造を持っています。
Col <> ( If ( データを無視したい、欠落させたい、そうでなければ元のデータを使用する)、 <<グループ化変数>> )。
では、どのデータを無視したいのでしょうか?
( 1 ) の場合、それは :diff > 0... 0 より大きい任意の差
(2)の場合は! ( 0 <= :diff <= 14)... 0 と 14 の間でない差
( 3 ) の場合、 :diff < 15... 15 未満の任意の差
コードを実行すると、次のような表が表示されます。 私のコードでは、グループ化列は「人」列です...そして、あなたの説明からそれが関心のある列であるように、違いをシミュレートしました。
乾杯、
ブレイディ
Names Default To Here( 1 );
nr = 50;
dt = New Table( "ex",
New Column( "Person", character, <<SET values=""> 0, ., :diff ), :Person ) ) );
dt << New Column( "form_2", formula( Col Min( If( !(0 <= :diff <= 14), ., :diff ), :Person ) ) );
dt << New Column( "form_3", formula( Col Min( If( :diff < 15, ., :diff ), :Person ) ) );</SET>
