Hai bisogno di input su Transforming a Table o Matrix<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Questa domanda è collegata o un follow-up al mio post precedente ( Hai bisogno di suggerimenti sul modo migliore per aggiungere una colonna di tabella per un ID che faccia questo .... ). Su quel post, la mia domanda è stata specificatamente risposta e c'erano molti suggerimenti che ho imparato. Tuttavia, ho ancora bisogno di un buon suggerimento su come manipolare una tabella o una matrice per trasformarla dalla forma originale alla forma desiderata.
Supponendo che questa sia la mia tabella originale (o matrice di forma simile):
Tabella 1: tabella originale
| Colonna A | Colonna B | Colonna C | Colonna D |
| un | e | io | m |
| B | f | j | n |
| c | g | K | o |
| d | h | l | p |
Volevo che ogni riga di questa tabella (o matrice) fosse ripetuta "n" volte in modo tale che la tabella risultante (o la matrice) assomiglierebbe a questa:
Tabella 2: Nuovo formato tabella previsto
| Colonna A | Colonna B | Colonna C | Colonna D |
| un | e | io | m |
| un | e | io | m |
| un | e | io | m |
| un | e | io | m |
| B | f | j | n |
| B | f | j | n |
| B | f | j | n |
| B | f | j | n |
| c | g | K | o |
| c | g | K | o |
| c | g | K | o |
| c | g | K | o |
| d | h | l | p |
| d | h | l | p |
| d | h | l | p |
| d | h | l | p |
Nell'esempio sopra, ogni riga della tabella originale è stata ripetuta "4" volte.
Dato che stavo giocando con "shaping" una matrice e applicando il suggerimento di concatenare tabelle "n" volte dal mio post precedente, sono riuscito a creare questo tavolo (dalla mia tabella originale)
Tabella 3: Alcune forme manipolate della Tabella 1 eseguite da Shaping the Matrix e ripetendo le righe "n" volte
| Colonna A | Colonna B | Colonna C | Colonna D | Colonna E | Colonna F | Colonna G | Colonna H | Colonna I | Colonna J | Colonna K | Colonna L | Colonna M | Colonna n | Colonna O | Colonna P |
| un | e | io | m | B | f | j | n | c | g | K | o | d | h | l | p |
| un | e | io | m | B | f | j | n | c | g | K | o | d | h | l | p |
| un | e | io | m | B | f | j | n | c | g | K | o | d | h | l | p |
| un | e | io | m | B | f | j | n | c | g | K | o | d | h | l | p |
Tuttavia, sono bloccato qui. Avrei voluto che questa tabella assomigliasse alla mia tabella prevista (Tabella 2) come descritto sopra. Apprezzo qualsiasi commento e suggerimento. Credo che ci siano modi più intuitivi ed efficienti di gestire questo rispetto a quello che ho in mente. Grazie.
Ri: Hai bisogno di input su Transforming a Table o MatrixAggiungendo alla risposta di Ian:
La clonazione della tabella può essere eseguita in un unico passaggio.
Nomi predefiniti qui (1);
dt = current data table ();
dt << Concatena (dt, dt, dt, append alla prima tabella (1));
dt << Ordina (Per (Colonna A));
In molti casi in cui ho utilizzato questa tecnica, non esiste una colonna su cui ordinare per ottenere l'ordine finale. Quindi quello che faccio in questo caso è creare una tale colonna
Nomi predefiniti qui (1);
dt = current data table ();
dt << nuova colonna ("rownum", valori (1 :: N Rows (dt));
dt << Concatena (dt, dt, dt, append alla prima tabella (1));
dt << Ordina (per (Rownum));
dt << elimina colonne ("rownum");
Ri: Hai bisogno di input su Transforming a Table o MatrixSembra che ti darà la 'Tabella 2' sopra. In JSL (se 'dt' è un riferimento alla tua tabella):
dt << Ordinare (Per (: Colonna A));
Ri: Hai bisogno di input su Transforming a Table o MatrixHo appena pensato a qualcosa ora ... Penso che sia possibile clonare semplicemente la tabella originale "n" volte ... e quindi ordina le righe in base a una determinata colonna (diciamo Colonna A). Pensi che funzioni?