Ich habe zwei verschiedene Termine für verschiedene Leute. Die erste Spalte (A) ist der Personenname. Die zweite Spalte ist (B=Index-Ereignisdatum) und die dritte ist (C=Interventionsdatum). Die vierte Spalte ist die Differenz (D) zwischen den beiden Daten „BC/ in Tagen(1)“.
Meine Frage ist, wie JMP für jede Person (A) einen bestimmten Wert in D auswählen kann. Ich muss den Wert in den folgenden Zeiträumen auswählen:
1- Der nächstgelegene Wert in D vor dem Indexereignisdatum (B). Nehmen wir an, eine Person hat die folgenden Datumsdifferenzwerte.0, -1, -10. Ich möchte in diesem Fall Null
2- Der erste Wert in D innerhalb von 2 Wochen nach A (0 Tage bis 14 Tage). Nehmen wir an, eine Person hat 2, 8, 14. Ich möchte 2
3- Der erste Wert in D nach 2 Wochen ab A (15 Tage oder mehr). Nehmen wir an, eine Person hat 17, 25, 35. Ich möchte 17
Hallo,
Wie Jed erwähnt, ist mehr Kontext besser, aber ich denke, ich verstehe, was Sie wollen.
Im Fall (1) ein Maximum, aber nur zwischen den Differenzen kleiner oder gleich Null.
Im Fall (2) ein Minimum, aber nur zwischen den Unterschieden zwischen 0 und 14 (einschließlich).
Im Fall (3) ein Minimum, aber nur zwischen diesen Unterschieden 15 oder mehr.
Wenn Sie dies möchten, können Sie in jedem Fall die gleiche Idee verwenden:
1) Legen Sie dynamisch die Daten fest, die Sie NICHT verpassen möchten, und dann
2) Berechnen Sie das Maximum oder Minimum der Daten und ignorieren Sie dabei die fehlenden Daten.
Im folgenden Code hat jede Formel die gleiche Struktur:
Col <> ( If ( Ich möchte die Daten ignorieren, sie fehlen lassen, andernfalls die Originaldaten verwenden), <> ).
Welche Daten wollen wir also ignorieren?
Im Fall (1) ist es :diff > 0...jede Differenz größer als 0
Im Fall (2) ist es! ( 0 <= :diff <= 14)...jede Differenz, die nicht zwischen 0 und 14 einschließlich liegt
Im Fall (3) ist es :diff < 15...jede Differenz kleiner als 15
Wenn Sie den Code ausführen, wird eine Tabelle wie die folgende angezeigt. In meinem Code ist die Gruppierungsspalte die Spalte „Person“ ... und ich habe gerade die Unterschiede simuliert, da Ihrer Beschreibung nach die Spalte von Interesse ist.
Prost,
Brady
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>

Könnten Sie vielleicht eine Beispieldatentabelle zur Verfügung stellen, um dies klarer zu machen? Die Funktion „Tabellen...Anonymisieren“ kann die Weitergabe erleichtern, wenn PII oder proprietäre Informationen nicht weitergegeben werden können.