J'ai une table de données où certaines des colonnes ont des valeurs qui se répètent parce que le programme qui génère les données contient la dernière valeur si une nouvelle n'est pas donnée.Cela signifie que je ne peux pas utiliser l'option "sélectionner les lignes en double" car cela supprime tous les doublons et pas seulement ceux qui se répètent. Je ne veux pas non plus supprimer les lignes, juste les valeurs dans les "cellules".
- 4.1
- 3.4
- 3.4 - supprimer la valeur
- 3.4 - supprimer la valeur
- 5.1
- 2.6
- 4.1 - garder !
- 3.4 - garder !
- 7.2
- 7.2 - supprimer la valeur
- 7.2 - supprimer la valeur
Cela deviendrait
- 4.1
- 3.4
- .
- .
- 5.1
- 2.6
- 4.1
- 3.4
- 7.2
- .
- .
JMP Pro 17.0.0
Vous pouvez utiliser un script comme ci-dessous :
Names Default To here(1);
dt= current data table();
// nouvelle colonne
dt << New Column( "nouvelles valeurs",
Numeric,
"Continuous",
Format( "Best", 12 )
);
// Modifier la formule de colonne : nouvelles valeurs
dt:nouvelles valeurs <<
Set Formula(
If( :valeurs[Sequence( 1, N rows(dt), 1, 1 )] == :valeurs[Sequence( 2, N rows(dt), 1, 1 )],
:nouvelles valeurs = .,
:nouvelles valeurs = :valeurs
)
);
J'utiliserais très probablement Dif ou Lag et créerais une nouvelle colonne. Ensuite, en fonction des valeurs de cette colonne, supprimez les valeurs de la colonne existante
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(11),
Compress File When Saved(1),
New Column("Column 1",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([4.1, 3.4, 3.4, 3.4, 5.1, 2.6, 4.1, 3.4, 7.2, 7.2, 7.2])
)
);
dt << New Column("ToDelete", Numeric, Nominal, << Set Each Value(
Dif(:Column 1) == 0
));
Ou vous pouvez créer une nouvelle colonne avec des valeurs (IfMZ est utilisé pour conserver la première ligne)
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(11),
Compress File When Saved(1),
New Column("Column 1",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([4.1, 3.4, 3.4, 3.4, 5.1, 2.6, 4.1, 3.4, 7.2, 7.2, 7.2])
)
);
dt << New Column("NewValues", Numeric, Nominal, << Set Each Value(
IfMZ(Dif(:Column 1) == 0,
.
,
:Column 1
)
));
