È necessario creare una colonna in base alla sequenza delle variabili visualizzate in un'altra colonnaCiao a tutti,
Voglio creare una colonna basata su :Identificativo cliente e quante volte (un numero di sequenze viene conteggiato solo come 1 conteggio, vedere the :Commento colonna) viene visualizzato nel set di dati. La mia esigenza è: Requisito finale e sarei felice di avere: Colonna obbligatoria 1 anche. Non riesco a riorganizzare/ordinare i dati.
Qualche aiuto per favore?
Molte grazie, -HSS

Combinazione e pulizia dei datiIngegneria della qualità e dei processiRi: È necessario creare una colonna in base alla sequenza di variabili visualizzate in un'altra colonnaUtilizzando la query SQL (in particolare GRUPPO_CONCAT ) o le diverse operazioni sulle tabelle di JMP (dividi, trasponi, testo in colonne e combina colonne, unisci) potrebbero essere più semplici delle formule (e più veloci), ma potresti farlo con una formula, ad esempio utilizzando Località() e indicizzazione di diverse colonne.
Modifica: aggiunto metodo interattivo
Dati del primo frazionamento:

Quindi trasponi i dati divisi:

Dai dati trasposti, utilizzare innanzitutto il testo nelle colonne per separare Req2 e Region l'uno dall'altro

Quindi utilizza Combina colonne per combinare colonne di riga

Rinomina e rimuovi le colonne non necessarie e dovresti ritrovarti con qualcosa di simile

Unisciti a questo con i dati originali2


Rimuovi le colonne extra e dovresti avere ciò che ti serve.
Il registro avanzato potrebbe avere uno script pronto per te, ma potresti doverlo ripulire un po'

Ri: È necessario creare una colonna in base alla sequenza di variabili visualizzate in un'altra colonnaCiao a tutti,
C'è un ulteriore requisito: aggiungere un'altra colonna :Richiesta_3 , da dove provengono tutti i testi :Gruppo verrebbero combinati e archiviati. :Gruppo il testo può essere lungo fino a 2 righe. Il separatore può essere qualsiasi cosa.
Il problema è che il numero di celle da combinare non è fisso, dipende dal valore nella colonna :Richiesta_1.
"Req_3" è obbligatorio.
Qualsiasi aiuto, grazie.

Ri: È necessario creare una colonna in base alla sequenza di variabili visualizzate in un'altra colonna@jthi Grazie per l'aiuto.
Lavorerò in questa direzione.
Ri: È necessario creare una colonna in base alla sequenza di variabili visualizzate in un'altra colonnaLa cosa più semplice è molto probabilmente creare una nuova colonna e quindi utilizzarla come raggruppamento anziché :Client_ID (formula originale)

Col Cumulative Sum(:"Concatenate[Region,Client_ID]"n != Lag(:"Concatenate[Region,Client_ID]"n), :"Concatenate[Region,Client_ID]"n)
Altrimenti la parte che viene sommata nella somma cumulativa diventa più complicata abbastanza velocemente (potrebbero essercene di più semplici di questa, ma questo dovrebbe gestire valori errati su :Region change):
Col Cumulative Sum(
If(Row() == Col Minimum(Row(), :Client_ID, :Region),
1
,
:Client_ID != Lag(:Client_ID)
)
, :Client_ID, :Region
)
Ri: È necessario creare una colonna in base alla sequenza di variabili visualizzate in un'altra colonna@jthi Col Cumulative Sum funzionerà ma non riesco a trovare un'inizializzazione corretta del ciclo/punto di partenza con la variabile di raggruppamento:Region.
Qualche altro suggerimento?
Grazie
Col Somma cumulativa( :Client_ID != Lag( :Client_ID ) & :Region == Lag( :Region ), :Client_ID )
Ri: È necessario creare una colonna in base alla sequenza di variabili visualizzate in un'altra colonnaDovresti prima creare una nuova colonna di "raggruppamento" se desideri utilizzare l'array associativo in questo modo. Con più colonne di raggruppamento, potrebbe essere più semplice utilizzare Col Cumulative Sum (potrebbe essere sempre più semplice, mi è appena venuto in mente questo). Dovrai capire il confronto corretto e i raggruppamenti
Col Cumulative Sum(:Client_ID != Lag(:Client_ID), :Client_ID)
Ri: È necessario creare una colonna in base alla sequenza di variabili visualizzate in un'altra colonnaCIAO @jthi , Posso effettuare il raggruppamento anche su "Associated Array" utilizzando altre colonne? Qualcosa come questo ? "Array associato(:Client_ID, :Region)" e il mio set di dati ha più di 700000 righe, il comando associato funzionerà ancora! Se posso raggruppare per :Regione , potrebbe contenere ancora più di 10.000 righe. In ogni caso, lo proverò sicuramente.
Grazie per l'aiuto. Saluti, - HSS
Ri: È necessario creare una colonna in base alla sequenza di variabili visualizzate in un'altra colonnaL'uso dell'array associativo per memorizzare il valore e quindi aumentarlo secondo necessità dovrebbe funzionare qui.
Formula per la colonna richiesta 1:
As Constant(
aa = Associative Array(:Client_ID);
aa = Associative Array(aa << get keys, Repeat(0, N Items(aa)));
retval = 1;
);
If(:Client_ID != Lag(:Client_ID),
aa[:Client_ID]++;
);
aa[:Client_ID];
E requisito finale:
Eval Insert("^:Client_ID^_^:Required Column 2^");
Script di esempio (utilizza nomi di colonne diversi):
Names Default To Here(1);
dt = Open("$DOWNLOADS/data.jmp");
dt << New Column("Required Column 2", Numeric, Ordinal, Formula(
As Constant(
aa = Associative Array(:Client_ID);
aa = Associative Array(aa << get keys, Repeat(0, N Items(aa)));
retval = 1;
);
If(:Client_ID != Lag(:Client_ID),
aa[:Client_ID]++;
);
aa[:Client_ID];
));
dt << New Column("Final Requirement 2", Character, Ordinal, Formula(
Eval Insert("^:Client_ID^_^:Required Column 2^");
));
