Besoin d'entrées pour transformer une table ou une matrice<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Cette question est liée ou fait suite à mon post précédent ( Besoin de suggestion sur la meilleure façon d'ajouter une colonne de table pour un ID qui fait cela .... ). Sur ce post, ma question a été spécifiquement répondue et il y avait beaucoup de conseils que j'ai appris. Cependant, j'ai de nouveau besoin d'une bonne suggestion sur la façon de manipuler un tableau ou une matrice pour le transformer du formulaire d'origine au formulaire souhaité.
En supposant que ceci soit mon tableau d'origine (ou une matrice de forme similaire):
Tableau 1: Tableau original
| Colonne A | Colonne B | Colonne C | Colonne D |
| une | e | je | m |
| b | F | j | n |
| c | g | k | o |
| ré | h | l | p |
Je voulais que chaque ligne de cette table (ou matrice) soit répétée "n" fois de sorte que la table résultante (ou matrice) ressemble à ceci:
Tableau 2: Nouveau format de tableau prévu
| Colonne A | Colonne B | Colonne C | Colonne D |
| une | e | je | m |
| une | e | je | m |
| une | e | je | m |
| une | e | je | 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 |
| ré | h | l | p |
| ré | h | l | p |
| ré | h | l | p |
| ré | h | l | p |
Dans l'exemple ci-dessus, chaque ligne de la table d'origine a été répétée "4" fois.
Alors que je jouais avec "façonner" une matrice et appliquer la suggestion de concaténer des tables "n" fois de mon précédent post, j'ai pu créer cette table
Tableau 3: Certaines formes manipulées du tableau 1 sont réalisées en façonnant la matrice et en répétant les lignes "n" fois
| Colonne A | Colonne B | Colonne C | Colonne D | Colonne E | Colonne F | Colonne G | Colonne H | Colonne I | Colonne j | Colonne K | Colonne L | Colonne M | Colonne N | Colonne O | Colonne P |
| une | e | je | m | b | F | j | n | c | g | k | o | ré | h | l | p |
| une | e | je | m | b | F | j | n | c | g | k | o | ré | h | l | p |
| une | e | je | m | b | F | j | n | c | g | k | o | ré | h | l | p |
| une | e | je | m | b | F | j | n | c | g | k | o | ré | h | l | p |
Cependant, je suis coincé ici. J'aurais voulu que ce tableau ressemble à mon tableau prévu (Tableau 2), comme décrit ci-dessus. J'apprécie vos commentaires et suggestions. Je crois qu'il existe des moyens plus intuitifs et efficaces de gérer cela que ce que j'ai en tête. Merci.
Re: Besoin d'entrées pour transformer une table ou une matriceAjout à la réponse de Ian:
Le clonage de la table peut être fait en une étape.
Noms par défaut ici (1);
dt = table de données actuelle ();
dt << concaténer (dt, dt, dt, ajouter au premier tableau (1));
dt << Trier (par (colonne A));
Dans de nombreux cas où j'ai utilisé cette technique, il n'existe pas de colonne à trier pour obtenir l'ordre final. Donc, ce que je fais dans ce cas est de créer une telle colonne
Noms par défaut ici (1);
dt = table de données actuelle ();
dt << nouvelle colonne ("rownum", valeurs (1 :: N lignes (dt));
dt << concaténer (dt, dt, dt, ajouter au premier tableau (1));
dt << Trier (par (Rownum));
dt << delete columns ("rownum");
Re: Besoin d'entrées pour transformer une table ou une matriceCela semble vous donner le "Tableau 2" ci-dessus. En JSL (si 'dt' est une référence à votre table):
dt << Trier (Par (: colonne A));
Re: Besoin d'entrées pour transformer une table ou une matriceJe viens de penser à quelque chose maintenant ... Je pense qu'il est possible de simplement cloner la table originale "n" fois ... et puis il suffit de trier les lignes en fonction d'une certaine colonne (disons la colonne A). Pensez-vous que cela fonctionne?