Combiner les données par ligneBonjour,
J'essaie de faire ce qui suit :
Étant donné la colonne Produit et la colonne Lot , je dois créer la colonne « Lots dans le produit » afin qu'elle combine tous les « lots » basés sur le même produit.

Le but final est d'obtenir le tableau :

Les X1, X2, X3, X4 ne doivent pas nécessairement être présents dans la cellule unique, cela fonctionnera également (selon ce qui est le plus simple) :

Manuellement, ce processus est insensé lorsque j'ai une table de milliers de points de données.
Merci beaucoup!
Le tableau JMP est joint.
Alex.
Automatisation et scriptsFusion et nettoyage des donnéesRe: Combiner les données par ligneQuestion très courante.
Il existe de nombreuses astuces et solutions de contournement.
Dans une future version de JMP ce sera très simple :
:folded_hands: Résumé et tableau : ajouter une option d'agrégation pour les colonnes de caractères
... si suffisamment d'utilisateurs suivent le lien et votent.
Re: Combiner les données par ligneVoici une façon
Names Default To Here(1);
dt = Current Data Table();
custom_sql = Eval Insert(
"\[SELECT Product, GROUP_CONCAT(DISTINCT CAST("Lot" as TEXT)) as "Lots in Product"
FROM t1
GROUP BY Product
]\");
dt_concat = Query(
Table(dt, "t1"),
custom_sql
);<BR /><BR />New window("Tablebox",<<TYPE></TYPE>Data Table Box( dt_concat ));Re: Combiner les données par ligneun autre:
dt = Current Data Table();
dt << New Column( "rank", Formula( Col Rank( 1, :Product ) ), );
dtsplit = dt << Split(
Split By( :rank ),
Split( :Lot ),
Group( :Product ),
Remaining Columns( Drop All ),
);
cols = dt split << get column names();
cols = cols[2 :: N Items( cols )];
dt split << New Column( "concat", Character, Set Each value( Concat Items( cols, "," ) ) );
dt << Update(
With( dt split),
Match Columns( :Product = :Product ),
Add Columns from Update Table( :concat ),
Replace Columns in Main Table( None )
);
Re: Combiner les données par ligneFonctionne à merveille ! Merci !