Bonjour, je suis nouveau sur Jmp et j'utilise le script pour essayer de réorganiser un ensemble de données. Actuellement, j'ai un ensemble de données qui est comme suit:
| ID | Laboratoire | Valeur du laboratoire | Date et heure du laboratoire | Médicament |
| UNE | Hgb | 12 | 05/10/16 à 06h00 | tylénol |
| UNE | Cr | 1 | 05/10/16 à 06h00 | tylénol |
| UNE | K | 4 | 05/10/16 à 06h00 | tylénol |
| B | K | 3,7 | 06/11/02 à 04h00 | aspirine |
| B | K | 4,5 | 06/11/02 à 07h00 | aspirine |
| B | Cr | 1.2 | 06/11/02 à 07h00 | aspirine |
| B | Hgb | 14 | 06/11/02 à 07h00 | aspirine |
| C | Cr | 1,5 | 15/01/09 à 06h30 | Vitamine D |
| C | Hgb | 12 | 15/01/09 à 06h30 | Vitamine D |
| C | Hgb | 9 | 15/01/09 à 09h30 | Vitamine D |
Je voudrais que chaque ID soit une seule ligne avec des colonnes pour chaque laboratoire individuel. Pour tout ID, il peut y avoir des doublons de différents laboratoires, mais j'aimerais conserver toutes les valeurs pour chaque laboratoire et en faire une colonne distincte. Je pensais faire une variable de comptage après avoir trié par ID et par laboratoire afin de pouvoir combiner et créer une variable qui serait Hgb1, Hgb2, mais je ne sais pas comment faire cela. Je ne sais pas non plus transposer comme je l'imagine.
| ID | Hgb1 | Date et heure du laboratoire | Hgb2 | Date et heure du laboratoire | Cr1 | Date et heure du laboratoire | Cr2 | Date et heure du laboratoire | K1 | Date et heure du laboratoire | K2 | Date et heure du laboratoire | Médicament |
| UNE | 12 | 05/10/16 à 06h00 | | | 1 | 05/10/16 à 06h00 | | | 4 | 05/10/16 à 06h00 | | | tylénol |
| B | | | | | | 06/11/02 à 07h00 | | | 3,7 | 06/11/02 à 04h00 | 4,5 | 06/11/02 à 07h00 | aspirine |
J'apprécierais toute aide.
Je vous remercie!!!
Cela a demandé beaucoup de réflexion et un peu de script, mais je pense que cela vous donnera au moins un bon départ sur ce dont vous avez besoin. Je n'étais pas sûr de ce que vous vouliez vraiment faire avec les valeurs des médicaments, alors je les ai ajoutées à chaque groupe de laboratoire ... vous voudrez peut-être changer cela. De plus, JMP n'aime pas les colonnes avec les mêmes noms, j'ai donc laissé les noms avec des noms uniques

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>Merci beaucoup! une fois que j'ai fait de ma variable ID une expression, cela fonctionnait parfaitement!