Come ricodificare una colonna con una formula in JSLHo problemi a far funzionare correttamente il mio script di ricodifica. Ho una tabella di dati con una colonna chiamata DEPT che contiene un numero che corrisponde a un nome di reparto specifico. Quello che voglio fare è creare una nuova colonna chiamata Dept Name che prende i valori in DEPT e li converte nel nome del dipartimento scritto piuttosto che nella versione numerica. Questa tabella fa parte di uno script più ampio che eseguo due volte a settimana con un anno continuo di dati ogni volta che viene eseguito, quindi ogni numero/nome di reparto potrebbe non essere presente in una determinata iterazione. Di seguito è riportato ciò che ho provato, ma sono riuscito solo a trasporre semplicemente il valore da DEPT in Dept Name o semplicemente a ottenere una colonna Dept Name vuota. Qualsiasi aiuto sarebbe molto apprezzato.
FD << Current Data Table();
New Column("Dept Name", Character, Nominal, Formula(:DEPT));
:Dept Name << Delete Formula;
For Each Row(:Dept Name =
Match( :Dept Name,
"100", "Wet Production",
"200", "QA Lab",
"300", "Dry Component",
"400", "Finished Component",
"410", "Microsis",
"415", "Antimicrobial",
"425", "Finished Component Product",
"475", "Special Processing",
"490", "eSIS",
"500", "QC",
"600", "Labeling",
"700", "Sterilization",
"1000", "Shipping and Finished Product Labeling",
"1200", "Quarentine",
:Dept Name);
);
Ri: Come ricodificare una colonna con una formula in JSLSe vuoi usare Match paradigma dovrebbe essere strutturato come:
FD = Current Data Table();
FD << New Column( "Dog Group", Character, Nominal );
For Each Row(
Dog Group = Match( :Breed #,
"6", "Toy",
"10", "Toy",
"18", "Toy",
"20", "Toy",
"24", "Toy",
"27", "Toy",
"30", "Toy",
"31", "Toy",
"8", "Work",
"9", "Work",
"15", "Work",
"17", "Work",
"21", "Work",
"28", "Work",
"36", "Work",
"1", "Sport",
"14", "Sport",
"23", "Sport",
"26", "Sport",
"29", "Sport",
"33", "Sport"
)
);
Ri: Come ricodificare una colonna con una formula in JSLPenso che non puoi fare un confronto del genere quando usi Match, dovresti scrivere tutti i valori separatamente. Userei Associative Array o data table per memorizzare Breed # e gruppi (potresti anche usare Match, ma penso che le altre opzioni siano migliori). A seconda di dove ottieni quei valori, ci sono molti modi diversi per costruirli.
Ri: Come ricodificare una colonna con una formula in JSLCiao!
Sto tentando qualcosa di simile qui su JMP 16. L'unica differenza, credo, è che ho più valori in ciascuno dei miei gruppi. Questa è la formula che sto provando ora:
FD = Current Data Table();
FD << New Column( "Dog Group", Character, Nominal );
For Each Row( Dog Group = Match( :Breed #, "6,10,18,20,24,27,30,31", "Toy", "8,9,15,17,21,28,36", "Work", "1,14,23,26,29,33", "Sport", "3,4,7,13,34,37,42", "Hound", "11,12,16,39", "Herder", "5,19,41", "Extra Fluff", "32,40", "Terrier", "2,25", "Doodle", "22", "Mixed", "35,38", "Other" ) );
Inizialmente ho anche ricodificato con una formula e questo funziona nella mia attuale tabella di dati, ma non sono in grado di copiare/incollare la formula in una nuova tabella (anche quando mi assicuro che i nomi delle colonne siano gli stessi).
Grazie per qualsiasi aiuto!
Ri: Come ricodificare una colonna con una formula in JSLHa funzionato perfettamente! Grazie per l'aiuto!
Ri: Come ricodificare una colonna con una formula in JSLPenso che tu sia sulla strada giusta, ma il tuo script originale confondeva le colonne dei dati originali e di destinazione. Prova questa modifica:
FD = Current Data Table();
FD << New Column( "Dept Name", Character, Nominal );
For Each Row(
:Dept Name = Match( :Dept,
"100", "Wet Production",
"200", "QA Lab",
"300", "Dry Component",
"400", "Finished Component",
"410", "Microsis",
"415", "Antimicrobial",
"425", "Finished Component Product",
"475", "Special Processing",
"490", "eSIS",
"500", "QC",
"600", "Labeling",
"700", "Sterilization",
"1000", "Shipping and Finished Product Labeling",
"1200", "Quarentine"
);
);