Come posso scrivere uno script per raggruppare automaticamente le colonne in una nuova tabella?Ciao,
Attualmente sto scrivendo uno script per unire essenzialmente tre tabelle "di riferimento" insieme usando le funzioni Unisci, Trasponi e Aggiorna. Il mio script consente di aggiornare la tabella di output finale ogni volta che aggiungo righe alla prima tabella "di riferimento".
Mi chiedevo se sarebbe possibile modificare il mio script per raggruppare automaticamente le colonne (ovvero la funzione "Raggruppa colonne") nella tabella di output finale in base al valore in una colonna della prima tabella "di riferimento"? Questa colonna non è presente in nessuna delle funzioni della tabella poiché potrebbe causare problemi con la trasposizione. È importante che questi raggruppamenti rimangano per ogni aggiornamento del tavolo finale.
Apprezzo qualsiasi feedback tu possa avere.
-Brian D.
Ri: Come posso scrivere uno script per raggruppare automaticamente le colonne in una nuova tabella?È questo il tipo di cosa che stai cercando?
Names Default To Here( 1 );
dt1 = New Table( "table1", add rows(1), New Column( "test", set values( [1] ) ) );
dt2 = New Table( "table2", add rows(2),
new column( "x1", character, set values( {"a", "b"} ) ),
New Column( "x2", character, set values( {"c", "d"} ) )
);
If( dt1:test[1] == 1,
dt2 << combine columns( delimiter( "," ),
columns( dt2:x1, dt2:x2 ), Column Name( "Combined" ) )
);Ri: Come posso scrivere uno script per raggruppare automaticamente le colonne in una nuova tabella?Non esattamente, anche se un'istruzione If simile potrebbe essere utile. La tabella di riferimento che ho citato (Tabella 1) ha due colonne pertinenti, "ID" e "Tipo". La tabella di output finale (Tabella 2) ha la colonna "ID" trasposta in modo che i valori sotto quella colonna nella Tabella 1 siano ora nomi di colonna nella Tabella 2. Quello che mi piacerebbe fare è raggruppare queste colonne nella Tabella 2 in base ai loro valori corrispondenti nella colonna "Tipo" nella Tabella 1.Ri: Come posso scrivere uno script per raggruppare automaticamente le colonne in una nuova tabella?Dai un'occhiata all'indice di scripting per gli usi delle colonne di gruppo.
Ecco un modo per fare ciò che hai dichiarato
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dt2 = New Table( "groupings",
New Column( "ID", character, set values( {"name", "age", "sex", "height", "weight"} ) ),
New Column( "Type", character, set values( {"A", "B", "C", "B", "A"} ) )
);
// Split data into columns based on Type
dtSplit = dt2 << Split( Split By( :Type ), Split( :ID ), Sort by Column Property );
// Process through the Split data table, creating the groups in the first data table
For( Group = 1, Group <= N Cols( dtSplit ), Group++,
theGroup = Column( dtSplit, Group ) << get values;
For(i=nitems(theGroup), i>=1,i--,if(theGroup[i] == "",
remove from(thegroup,i,1)));
grouping = dt << group columns( theGroup ); <BR /><BR /><FONT face="Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace" size="2" style="background-color: #f5f5f5;" color="#b00000">dt << Rename Column Group( grouping, (column(dtSplit, group)<<GET name="">
);</GET></FONT>