Besoin d'aide pour recoder une colonne avec des valeurs de laboratoireSalut
Dans mon tableau, j'ai 3 colonnes : heure, données de laboratoire et une température.
Pour les données de laboratoire, je souhaite conserver uniquement la valeur lorsqu'elle est disponible et définir toutes les lignes consécutives sur null jusqu'à ce que nous ayons un nouveau résultat de laboratoire.
Comment dois-je écrire un script pour gérer cela ?
Merci

Tableau de donnéesScriptRe : Besoin d'aide pour recoder une colonne avec des valeurs de laboratoireEn plus de la solution de formule de DS, vous pouvez la gérer comme indiqué ci-dessous.
Nous devons d'abord trier Big Class par âge (ce sont vos données de laboratoire).
Ensuite, nous sélectionnons l'âge de la colonne et laissons jmp trouver toutes les lignes répétées pour l'âge.
Pour ceux-ci, nous supprimons les valeurs d'âge.
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()]=.;
Re : Besoin d'aide pour recoder une colonne avec des valeurs de laboratoireQuelques options de formule supplémentaires (en utilisant simplement remplacer << définir chaque valeur avec la formule si vous en avez besoin)
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
,
.
);
));Re : Besoin d'aide pour recoder une colonne avec des valeurs de laboratoireSalut @LogitTurtle576 ,
Une manière possible est de générer une nouvelle colonne avec la formule suivante :
If(
:Column 1 == Lag(:Column 1, 1), .,
Row() == 1, :Column 1[1],
:Column 1[Row()]
)
où :Column 1 est la colonne de données qui vous intéresse. Cela définira toutes les valeurs sur null, sauf lorsqu'il y a un changement d'une ligne à la suivante, alors il utilisera cette valeur. La condition intermédiaire définit la première ligne sur la valeur de la ligne 1 de votre colonne de données.
Je suis sûr qu'il existe d'autres moyens, mais je sais que celui-ci peut faire ce qui vous intéresse. De plus, puisque vous avez une autre colonne, vous ne perdez aucune de vos données d'origine en recodant ou en écrasant la colonne d'origine.
J'espère que cela t'aides!,
DS
Re : Besoin d'aide pour recoder une colonne avec des valeurs de laboratoireMerci pour votre réponse rapide