Empiler des colonnes avec plusieurs nomsBonjour à tous!
Disons que j'ai un tableau de données qui ressemble à ceci :
A, B1, B2, C1, C2, D
1,2,3,4,5,16
6,7,8,9,10,16
11,12,13,14,15,16
Je veux les empiler pour que le nouveau tableau ressemble à ceci :
ABC
1,2,4
1,3,5
6,7,9
6,8,10
11,12,14
11,13,15
J'ai trois listes : une contenant les colonnes à conserver : list_to_keep= {A},list_to_stack_before= {B1,C1} et list_to_stack_after = {B2,C2}.
J'ai d'abord écrit un script pour créer une nouvelle liste avec les nouveaux noms de colonnes :
new_column_names = {} ;
str = char(list_to_stack_before);
newstr = substitut(str,"", "", "_be_sam","");
new_column_names = parse(newstr);
Ensuite, j'ai essayé de boucler la fonction stack mais cela ajoute toujours plus de lignes. Je ne peux pas utiliser la fonction Stack normale car elle ne me permet pas d'utiliser plusieurs noms dans l'argument Stacked Data Column. Comment puis-je résoudre ce problème? Merci beaucoup, je suis très nouveau sur jmp.
Automatisation et scriptsRe : Empiler des colonnes avec plusieurs nomsBonjour Greg, merci beaucoup pour votre réponse !
Je connais l'interface de la pile et j'ai également utilisé le workflowbuilder pour empiler un script. Le problème avec le changement de nom est que je n'ai pas 3 colonnes que je veux empiler mais plutôt 40 et je m'attends à ce qu'il grandisse avec de nouvelles mesures entrantes.
J'ai réalisé que je pourrais probablement écrire un script pour renommer les colonnes à l'aide d'une liste, mais cela semble être une solution de contournement pas très agréable et sujette à des erreurs dans l'ordre. J'espérais qu'il existe une méthode plus fluide. Il est très dommage que l'option "nouveaux noms de colonnes" ne permette pas plus d'un argument.
Meilleur
Re : Empiler des colonnes avec plusieurs nomsSupprimez-vous la colonne D ? Dans vos tableaux de données réelles, comment décidez-vous quelles colonnes supprimer ? Quelle est la convention de dénomination des colonnes (pré- et post-pile) ? Cela ne devrait pas être trop difficile à automatiser via JSL.
*modifier*
De plus, le nombre de multiples est-il toujours le même ? Par exemple, s’il y a un B1 et un B2, y aura-t-il toujours un C1 et un C2, ou pourrait-il y avoir aussi un C3 ? Si oui, comment faut-il gérer cela ?
Re : Empiler des colonnes avec plusieurs nomsD'ACCORD-
C'est bien que vous soyez capable d'écrire un script. Merci d'avoir précisé que vous recherchez quelque chose d'évolutif pour éviter de renommer de nombreuses colonnes.
D'abord en aparté/tangente - comme truc et astuce pour la manipulation du nom de colonne en mode manuel, mais à grande échelle : c'est rapide et puissant ( mais doit être fait avec soin )
- dans le volet Colonnes, sélectionnez toutes les colonnes - "copier" (place le texte dans le tampon de copie)
- Dans un autre tableau de données (ou une feuille de calcul ou un programme de traitement de texte), "Coller" - la liste des colonnes est créée sous forme de texte.
Manipulez-le comme vous le souhaitez (tapez modifier le texte en place, créez une colonne de formule pour ajouter un préfixe/suffixe... peu importe)...
- "Copier" la liste modifiée des nouveaux noms de colonnes de texte
- Revenir au tableau d'origine. Effacez la sélection des colonnes, puis resélectionnez la liste des colonnes dans le volet des colonnes. "Coller" pour écraser les noms de colonnes modifiés
Retour à la méthode d'opérations sur table proposée précédemment.
Si le caractère le plus bas sera toujours 1/2 (ou au moins indiquera la famille de colonnes à empiler), cela peut être fait en deux opérations de table et une formule. Ces étapes peuvent être scriptées ou capturées dans le générateur de flux de travail si les actions doivent être reproductibles.

Ajouter une colonne de formule pour couper "Étiquette", à l'exclusion du caractère le plus bas

Tableau « Diviser » les données par étiquette découpée ....

Re : Empiler des colonnes avec plusieurs nomswow, joli lien entre la pile multi-séries et la pile + split !