Bonjour,
Est il possible dans JMP de joindre plusieurs colonnes en 1 seule ligne à partir d'un identifiant, autrement dit: passer du premier tableau au second?
Merci
| NOM | Prénom | item 1 | item 2 | item 3 | item 4 | | | | | | | | |
| frzegfze | fez | A | 12 | 224 | a | | | | | | | | |
| fez | fez | B | 3 | 5 | b | | | | | | | | |
| fez | fez | C | 4 | 67 | c | | | | | | | | |
| GRZGR | xcsq | D | 5 | 5 | d | | | | | | | | |
| GZE | GFEZ | E | 2 | 31 | e | | | | | | | | |
| GZE | GFEZ | F | 7 | 2 | f | | | | | | | | |
| GZE | QD | G | 8 | 0 | g | | | | | | | | |
| | | | | | | | | | | | | | |
| NOM | Prénom | item 1-1 | item 2-1 | item 3-1 | item 4-1 | item 1-2 | item 2-2 | item 3-2 | item 4-2 | item 1-3 | item 2-3 | item 3-3 | item 4-3 |
| frzegfze | fez | A | 12 | 224 | a | | | | | | | | |
| fez | fez | B | 3 | 5 | b | C | 4 | 67 | c | | | | |
| GRZGR | xcsq | D | 5 | 5 | d | | | | | | | | |
| GZE | GFEZ | E | 2 | 31 | e | F | 7 | 2 | f | G | 8 | 0 | g |
| GZE | QD | G | 8 | 0 | g | | | | | | | | |
dans le deuxième tableau, « G » apparaît deux fois. avec GFEZ et QD ?
Vous pouvez empiler puis diviser les données.
Pour empiler les colonnes, elles doivent avoir le même format. Il peut donc être nécessaire de procéder à des étapes supplémentaires pour aligner les formats et les ramener au format d'origine.
dt = New Table( "demo",
Add Rows( 7 ),
Compress File When Saved( 1 ),
New Column( "NAME",
Character,
Set Values( {"frzegfze", "he did", "he did", "GRZGR", "GZE", "GZE", "GZE"} )
),
New Column( "First name",
Character,
Set Values( {"he did", "he did", "he did", "xcsq", "GFEZ", "GFEZ", "QD"} )
),
New Column( "item 1",
Character,
Set Values( {"A", "B", "C", "D", "E", "F", "G"} )
),
New Column( "item 2",
Character,
Set Values( {"12", "3", "4", "5", "2", "7", "8"} )
),
New Column( "item 3",
Character,
Set Values( {"224", "5", "67", "5", "31", "2", "0"} )
),
New Column( "item 4",
Character,
Set Values( {"a", "b", "c", "d", "e", "f", "g"} )
)
);
dt << New Column( "entry",
Formula( Col Rank( Row(), :NAME, :First name ) ),
);
dtstacked = dt << Stack(
columns( :item 1, :item 2, :item 3, :item 4 )
);
dtsplit = dtstacked <<
Split(
Split By( :entry, :Label ),
Split( :Data ),
Group( :NAME, :First name )
);