Impila colonne con più nomiCiao a tutti!
Diciamo che ho una tabella dati che assomiglia a questa:
A,B1,B2,C1,C2,D
1,2,3,4,5,16
6,7,8,9,10,16
11,12,13,14,15,16
Voglio impilarli in modo che la nuova tabella assomigli a questa:
A,B,C
1,2,4
1,3,5
6,7,9
6,8,10
11,12,14
11,13,15
Ho tre elenchi: uno contenente le colonne che devono essere mantenute: list_to_keep= {A},list_to_stack_before= {B1,C1} e list_to_stack_after = {B2,C2}.
Per prima cosa ho scritto uno script per creare un nuovo elenco con i nuovi nomi di colonna:
nuovi_nomi_colonna = {};
str = char(list_to_stack_before);
newstr = sostituto(str,"", "", "_be_sam","");
nuovi_nomi_colonna = analizza(newstr);
Quindi ho provato a eseguire il loop della funzione stack ma aggiunge sempre più righe. Non posso utilizzare la normale funzione Stack perché non mi consente di utilizzare più nomi nell'argomento Colonna dati in pila. Come posso risolvere questo problema? Grazie mille, sono nuovo a jmp.
Automazione e scriptingRe: Impilare colonne con più nomiCiao nuovo membro
Anche se è possibile eseguire lo scripting, forse vedi quanto lontano puoi andare prima della codifica (protip- in JMP è spesso piuttosto lontano).
Il menu Tabelle, il comando Stack arriverà quasi ovunque. L'anteprima in tempo reale è davvero utile.

Dopo aver eseguito questo comando, rinominare le colonne "Dati" in A e B, eliminare la colonna Etichetta.
Se vuoi crearne uno script, dopo aver eseguito il comando stack, il triangolo verde "Sorgente" nel pannello in alto a sinistra rieseguirà l'azione. Fare clic con il tasto destro/modifica per visualizzare la sintassi dello script.
Per ottenere la sintassi dello script: utilizza il generatore di flussi di lavoro per registrare i passaggi, quindi il triangolo rosso> salva nella finestra dello script.
Re: Impilare colonne con più nomiCiao Greg, grazie mille per la tua risposta!
Conosco l'interfaccia dello stack e ho anche utilizzato il generatore di flussi di lavoro per ottenere uno script da impilare. Il problema con la ridenominazione è che non ho 3 colonne che voglio impilare ma più come 40 e mi aspetto che cresca con l'arrivo di nuove misurazioni.
Mi sono reso conto che probabilmente avrei potuto scrivere uno script per rinominare le colonne utilizzando un elenco, ma questa sembra una soluzione non molto carina e soggetta a errori nell'ordine. Speravo ci fosse un metodo più fluido. È un vero peccato che l'opzione "nuovi nomi di colonna" non consenta più di un argomento.
Migliore
Re: Impilare colonne con più nomiStai eliminando la colonna D? Nelle tabelle di dati reali, come decidi quali colonne eliminare? Qual è la convenzione di denominazione per le colonne (pre e post-stack)? Questo non dovrebbe essere troppo difficile da automatizzare tramite JSL.
*modificare*
Inoltre, il numero di multipli è sempre lo stesso? Ad esempio, se ci sono B1 e B2, ci saranno sempre C1 e C2 o potrebbe esserci anche C3? Se sì, come dovrebbe essere gestito?
Re: Impilare colonne con più nomiOK-
È positivo che tu sia in grado di scrivere script. Grazie per aver chiarito che stai cercando qualcosa di scalabile per evitare di rinominare molte colonne.
Innanzitutto come digressione/tangente : come suggerimento e trucco per la manipolazione dei nomi delle colonne in modalità manuale, ma su larga scala: è rapido e potente ( ma deve essere fatto con cura )
- nel riquadro Colonne, seleziona tutte le colonne: "copia" (inserisce il testo nel buffer di copia)
- In un'altra tabella dati (o in un foglio di calcolo o in un programma di elaborazione testi), "Incolla": l'elenco delle colonne viene creato come testo.
Manipolalo come desideri (digita modifica testo sul posto, crea una colonna formula per aggiungere prefisso/suffisso... qualunque cosa)...
- "Copia" l'elenco modificato dei nomi delle nuove colonne di testo
- Ritorna alla tabella originale. Cancella la selezione delle colonne, quindi riseleziona l'elenco delle colonne nel riquadro delle colonne.. "Incolla" per sovrascrivere i nomi delle colonne modificate
Torniamo al metodo delle operazioni su tavola proposto prima.
Se il carattere più basso sarà sempre 1/2 (o almeno indicherà la famiglia di colonne che dovrebbe essere impilata), ciò può essere fatto con due operazioni sulla tabella e una formula. Questi passaggi potrebbero essere inseriti in script o acquisiti nel generatore di flussi di lavoro se le azioni devono essere ripetibili.

Aggiungi la colonna formula per tagliare "Etichetta", escludendo il carattere più basso

Dati "divisi" della tabella per etichetta ritagliata ....

Re: Impilare colonne con più nomiwow, bel collegamento tra stack a serie multiple e stack + split!