Benötigen Sie Hilfe, um eine Spalte mit Laborwerten umzucodierenHi
In meiner Tabelle habe ich 3 Spalten: Zeit, Labordaten und eine Temperatur.
Für die Labordaten möchte ich nur den Wert behalten, wenn er verfügbar ist, und alle aufeinanderfolgenden Zeilen auf Null setzen, bis wir ein neues Laborergebnis haben.
Wie soll ich ein Skript schreiben, um damit umzugehen?
Vielen Dank

DatentabelleSkripterstellungBetreff: Brauchen Sie Hilfe, um eine Spalte mit Laborwerten umzucodierenZusätzlich zur Formellösung von DS könnten Sie damit wie unten gezeigt umgehen.
Zuerst müssen wir Big Class nach Alter sortieren (das sind Ihre Labordaten).
Dann wählen wir die Spalte Alter aus und lassen jmp alle sich wiederholenden Zeilen für Alter finden.
Für diese löschen wir die Altersangaben.
BR Georg
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
dt << sort( by( age, name ), Replace Table );
dt << select columns(age);
dt << select duplicate rows();
dt:age[dt << get selected rows()]=.;
Betreff: Brauchen Sie Hilfe, um eine Spalte mit Laborwerten umzucodierenEinige zusätzliche Formeloptionen (indem Sie einfach << ersetzen, setzen Sie jeden Wert durch Formel, wenn Sie eine benötigen)
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(9),
New Column("Column 1", Numeric, "Continuous", Format("Best", 12), Set Values([1, 1, 1, 2, 2, 2, 3, 3, 3])),
New Column("Column 2", Numeric, "Continuous", Format("Best", 12), Set Values([1.2, 1.2, 1.3, 2.3, 2.4, 2.1, 3.5, 3.6, 3.1]))
);
dt << New Column("Result", Numeric, Continuous, << Set Each Value(
IfMZ(:Dif(:Column 1) == 0,
.
,
:Column 1
)
));
dt << New Column("Result2", Numeric, Continuous, << Set Each Value(
If(Row() == Col Min(Row(), :Column 1),
:Column 1
,
.
);
));Betreff: Brauchen Sie Hilfe, um eine Spalte mit Laborwerten umzucodierenHi @LogitTurtle576 ,
Eine Möglichkeit besteht darin, eine neue Spalte mit der folgenden Formel zu generieren:
If(
:Column 1 == Lag(:Column 1, 1), .,
Row() == 1, :Column 1[1],
:Column 1[Row()]
)
wobei: Spalte 1 Ihre interessierende Datenspalte ist. Dadurch werden alle Werte auf null gesetzt, außer wenn es eine Änderung von einer Zeile zur nächsten gibt, dann wird dieser Wert verwendet. Die mittlere Bedingung setzt die erste Zeile auf den Wert von Zeile 1 Ihrer Datenspalte.
Ich bin mir sicher, dass es andere Möglichkeiten gibt, aber ich weiß, dass dieser das tun kann, woran Sie interessiert sind. Da Sie außerdem eine weitere Spalte haben, verlieren Sie keine Ihrer Originaldaten, wenn Sie die Originalspalte neu codieren oder überschreiben.
Hoffe das hilft!,
DS
Betreff: Brauchen Sie Hilfe, um eine Spalte mit Laborwerten umzucodierenDanke für deine schnelle Antwort