<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao a tutti
Ho bisogno di aiuto su quale sarebbe il modo migliore per raggruppare più colonne della stessa tabella.
La mia tabella avrebbe colonne simili alle seguenti:
Z 3, X 1, Z 2, X 3, X 4, Y 1, X 2, Y 2, Z 1
Vorrei raggruppare tutti gli X, Y e Z insieme e in ordine numerico se possibile. Questa è una versione condensata di ciò di cui mi occupo, che di solito è dell'ordine di centinaia di colonne con dimensioni di gruppo diverse richieste.
Il modo più semplice che penso sarebbe quello di creare un elenco basato sui nomi delle colonne, quindi utilizzare la funzione loc () per restituire la posizione di ciascun nome di colonna simile. Tuttavia, quale sarebbe il modo migliore per utilizzare il comando group ()?
Qualsiasi aiuto su questo problema è apprezzato.
Grazie!
Funziona alla grande, grazie MS!
Una domanda di follow-up ... C'è un modo semplice per presentare all'utente un elenco di tutti i gruppi, farli selezionare un altro gruppo dall'elenco, quindi fare in modo che lo script crei tabelle di sottoinsieme contenenti solo i gruppi selezionati?
Ci sono probabilmente diversi modi per farlo. Ecco un'idea che dovrebbe funzionare per qualsiasi tabella in cui il raggruppamento deve essere basato sulla prima lettera dei nomi delle colonne.
// Tabella di esempio
nomi = { Z 3 , X 1 , Z 2 , X 3 , X 4 , Y 1 , X 2 , Y 2 , Z 1 } ;
dt = Nuova tabella ( "test" ) ;
Per ( io = 1 , io <= N articoli ( nomi ) , io ++,
dt << Nuova colonna ( carbonizzare ( nomi [ io ] ) , numerico )
) ;
// ordina le colonne della tabella e crea l'elenco della prima lettera dei nomi delle colonne
dt << riordinare per nome () ;
collist = dt << ottieni i nomi delle colonne ( stringa ) ;
Per ( io = 1 , io <= N Col ( dt ) , io ++,
collist [ io ] = Sinistra ( collist [ io ] , 1 )
) ;
// Crea la lista del nome della colonna univoco 1a lettera
col_type = Array associativo ( collist ) << prendere le chiavi ;
// colonne del gruppo
Per ( io = 1 , io <= N articoli ( col_type ) , io ++,
pos = Loc ( collist , col_type [ io ] ) ;
dt << colonne di gruppo ( Colonna ( pos [ 1 ] ) , N Row ( pos ) ) ;
) ;