Hallo, ich bin brandneu bei Jmp und verwende das Skript, um zu versuchen, einen Datensatz neu anzuordnen. Derzeit habe ich einen Datensatz, der wie folgt aussieht:
| ICH WÜRDE | Labor | Laborwert | Datum und Uhrzeit des Labors | Medikament |
| EIN | Hgb | 12 | 05.10.16 6:00 Uhr | Tylenol |
| EIN | Cr | 1 | 05.10.16 6:00 Uhr | Tylenol |
| EIN | K. | 4 | 05.10.16 6:00 Uhr | Tylenol |
| B. | K. | 3.7 | 06.11.02 04:00 Uhr | Aspirin |
| B. | K. | 4.5 | 06.11.02 7:00 Uhr | Aspirin |
| B. | Cr | 1.2 | 06.11.02 7:00 Uhr | Aspirin |
| B. | Hgb | 14 | 06.11.02 7:00 Uhr | Aspirin |
| C. | Cr | 1.5 | 15.01.09 6:30 Uhr | Vitamin-D |
| C. | Hgb | 12 | 15.01.09 6:30 Uhr | Vitamin-D |
| C. | Hgb | 9 | 15.01.09 9:30 Uhr | Vitamin-D |
Ich möchte, dass jede ID eine einzelne Zeile mit Spalten für jedes einzelne Labor ist. Für jede ID gibt es möglicherweise Duplikate verschiedener Labore, aber ich möchte alle Werte für jedes Labor beibehalten und sie zu einer separaten Spalte machen. Ich dachte daran, nach dem Sortieren nach ID und Labor eine Zählvariable zu erstellen, damit ich eine Variable kombinieren und erstellen kann, die Hgb1, Hgb2 ist, aber ich weiß nicht, wie ich das machen soll. Ich weiß auch nicht, wie ich transponieren soll, wie ich es mir vorstelle.
| ICH WÜRDE | Hgb1 | Datum und Uhrzeit des Labors | Hgb2 | Datum und Uhrzeit des Labors | Cr1 | Datum und Uhrzeit des Labors | Cr2 | Datum und Uhrzeit des Labors | K1 | Datum und Uhrzeit des Labors | K2 | Datum und Uhrzeit des Labors | Medikament |
| EIN | 12 | 05.10.16 6:00 Uhr | | | 1 | 05.10.16 6:00 Uhr | | | 4 | 05.10.16 6:00 Uhr | | | Tylenol |
| B. | | | | | | 06.11.02 7:00 Uhr | | | 3.7 | 06.11.02 04:00 Uhr | 4.5 | 06.11.02 7:00 Uhr | Aspirin |
Ich würde mich über jede Hilfe freuen.
Danke dir!!!
Dies erforderte einiges Nachdenken und ein wenig Skripting, aber ich denke, es wird Ihnen zumindest einen guten Start geben, was Sie brauchen. Ich war mir nicht sicher, was Sie wirklich mit den Medikamentenwerten anfangen wollten, also habe ich sie zu jeder Laborgruppe hinzugefügt. Vielleicht möchten Sie das ändern. Außerdem mag JMP keine Spalten mit denselben Namen, daher habe ich die Namen mit eindeutigen Namen belassen

names default to here(1);
dt=current data table();
// Add a rowNum column to capture the original data table order
dt << New Column("rowNum", formula(Row()));
dt:rowNum << delete formula;
// Order the data so that a count column can be calculated
dt << sort(by(:Lab, :ID), order(ascending,ascending),replace table(1));
// Add the count value, to count the number of duplicate labs for each ID
dt << new column("count", formula(If( Row() == 1, mycount = 1 );
If( Lag( :ID ) == :ID & Lag( :Lab ) == :Lab,
mycount++,
mycount = 1
);
mycount;));
// Split the data into columns
dtSplit = dt << Split(
Split By( :Lab, :count ),
Split( :Lab Value, :Lab date and time, :Medication ),
Group( :ID ),
Remaining Columns( Drop All ),
Sort by Column Property
);
// Clean up the original data table
dt << sort( by(:rowNum),order(ascending), replace table(1));
dt << delete columns({"count", "rowNum"});
// Order the columns
// Get the list of columns that start with "Lab Value", which
// will be used to order the columns based on them
labValueList = {};
for(i=1,i<=ncols(dtSplit),i++,
If(uppercase(left(column(i)<<GET name=""></GET>Ich danke dir sehr! Sobald ich meine ID-Variable nicht zu einem Ausdruck gemacht habe, hat dies perfekt funktioniert!