Conversion de plusieurs colonnes en une seule colonne, tout comme l'image.J'ai besoin d'aide pour ce tableau.
J'essaie de faire pivoter une partie de la table.
le tableau comporte environ 300 colonnes et 30 lignes.
Je veux garder les lignes 12 à 30 de la même manière qu'elles le sont jusqu'à la colonne 11.
et faites pivoter le reste des colonnes (de 12 à la fin.) pour qu'elles soient comme sur l'image.
Je pense que la solution sera celle-ci : chaque ligne de 12 à 30 aura 288 colonnes.
Voir photo pour l'idée de ce que je veux.
Si vous pouviez envoyer un code, ce serait formidable.
la première image montre la table réelle.
la deuxième photo montre la solution que je veux.


Re : Conversion de plusieurs colonnes en une seule colonne comme sur l'image.Voici un script qui fonctionne sur l'exemple de table de données que vous avez fourni.BTW, il serait plus pratique si vous aviez joint une copie de la table de données, plutôt que d'avoir à la créer manuellement.En dehors de cela, je pense que le script fonctionnera tant que les 11 premières colonnes restent statiques, que les données commencent à la ligne 3 et que toutes les colonnes après la colonne 11 sont considérées comme des colonnes à traiter.
names default to here(1);
dt=current data table();
// Find the number of columns to process
numberOfMeasurements = N Cols(dt) - 11;
// Add the 3 new columns to place the measurements into
dt << Add Multiple Columns( "Rotated", 3,After(:column 11), Character );
// Add in the number of empty rows required for all of the rotations
For(i=N Rows(dt),i>=3, i--,
dt << Add Rows( numberOfMeasurements - 1, after(i) );
);
// Move the data into the required new cells
For( theRow = 3, theRow <= N Rows(dt), theRow = theRow + numberOfMeasurements,
For( theCol = 12 + 3, theCol <= N Cols(dt), theCol++,
:Rotated 1[theRow + theCol-12-3] = column(theCol)[1];
:Rotated 2[theRow + theCol-12-3] = column(theCol)[2];
:Rotated 3[theRow + theCol-12-3] =
column(theCol)[theRow];
)
);
Toutes les fonctions utilisées sont documentées dans le Scripting Index
Aide==>Index des scripts
Enfin, je fournis ce script sous l'hypothèse que vous êtes nouveau dans JMP et donc comme illustration que JMP JSL peut faire à peu près tout ce que vous devez faire.Le forum de la communauté n'est pas un endroit pour demander à des individus d'écrire du code pour vous.Il s'agit d'un groupe dont le but est d'aider les utilisateurs de JMP qui rencontrent des problèmes.Il est supposé que les membres qui ont des questions sont là pour apprendre JMP, de sorte qu'à l'avenir, ils deviendront des utilisateurs plus compétents et plus indépendants de JMP.
Re : Conversion de plusieurs colonnes en une seule colonne comme sur l'image.
c'est le fichier réel, pourriez-vous expliquer comment pourrais-je diviser la table et les relier à nouveau ?
Re : Conversion de plusieurs colonnes en une seule colonne comme sur l'image.Tout d'abord, votre table de données d'origine est une structure inappropriée pour une table JMP.JMP n'est pas une feuille de calcul.Il s'agit d'un tableau de données basé sur des colonnes analytiques.Et les plates-formes statistiques et graphiques JMP prennent la forme d'un tableau de données analytiques.Ainsi, en essayant de transposer vos colonnes et vos lignes dans votre tableau de données, vous ne pourrez pas utiliser le
Tableaux==>Transposer
Plate-forme.
De plus, vous ne pourrez pas utiliser directement de nombreuses fonctions mathématiques JSL, car pour que le tableau soit structuré comme vous l'avez, toutes les colonnes, et donc toutes les cellules individuelles, seront de type de données Caractère, pas numérique.Si les données contenues dans la ligne 12 et au-delà se trouvaient dans un tableau de données JMP, il serait simple d'utiliser
Tableaux==>Fractionner
pour modifier les données dans la forme souhaitée.
Mais même étant donné cela, vous pourriez écrire un morceau de JSL qui transposera la sous-zone dans la table de données, dans un nouveau format.La table de données JMP peut être référencée comme une matrice ligne par colonne, et étant donné que, un programme peut être écrit qui prend la valeur de datatable("1911-15 V1 500")[5,14] et place cette valeur dans n'importe quel autre cellule de ligne/colonne souhaitée.Cela peut être mis dans une structure en boucle For() pour rendre le code plus complexe, mais le fait est qu'à mon avis, un morceau de JSL devra être écrit pour effectuer la transposition.