Skriptwerte für mehrere Spalten mithilfe eines assoziativen Arrays und einer Schleife neu kodierenHallo JMP-Benutzergemeinschaft,
Sehr oft muss ich Werte neu codieren und verwende gerne eine Datei mit Zuordnungsschlüsseln (angehängt, help_med_code.jmp).
Aus diesen Zuordnungsdaten habe ich das assoziative Array erstellt und um die Werte in meinem Datensatz (help_data.jmp) neu zu kodieren, kodiere ich die Werte für jede Spalte neu.
Manchmal habe ich viele Spalten und die Verwendung der Schleife wäre vorzuziehen.
Allerdings funktioniert mein Skript für die Schleife nicht (angehängt, help2.jsl).
Bitte helfen Sie, das assoziative Array in der Schleife zu verwenden. Auch andere Vorschläge zur Neucodierung sind sehr willkommen.
Ich hoffe, ich habe keine dummen Tippfehler gemacht und die Frage nicht wiederholt, falls sie hier bereits beantwortet wurde.
Alles Gute euch allen,
Valentina
JMP® 16.2.0 (570548)
Microsoft Windows 10 Enterprise 64-Bit (10.0.19044.0)
Automatisierung und SkripterstellungDatenmischung und -bereinigungBetreff: Skriptwerte für mehrere Spalten mithilfe eines assoziativen Arrays und einer Schleife neu codierenWie erstellen Sie Ihre Zuordnung für Spaltennamen? Haben die Originalspalten immer das gleiche Format? Ich gehe in meinem Beispielskript davon aus, dass dies der Fall ist, sodass diese wiederholt werden können
Names Default To Here(1);
// this is original datatable
dt_data = Open("help_data.jmp");
// this is mapping file
dt_mapping = Open("help_med_code.jmp");
//The associative array
aa_mapping = Associative Array(:number, :med);
aa_mapping << Set Default Value("MISSING MAPPING INFO");
// build column name mapping
aa_colnames = Associative Array();
For Each({col_name}, dt_data << Get Column Names("Character", "String"),
If(Starts With(col_name, "med_"),
aa_colnames[col_name] = Substitute(col_name, "med_m", "drugname_");
)
);
For Each({{orig_col, new_col}}, aa_colnames,
dt_data << New Column(new_col, Character, Nominal, << Set Each Value(
aa_mapping[Column(dt_data, orig_col)[Row()]]
));
);Betreff: Skriptwerte für mehrere Spalten mithilfe eines assoziativen Arrays und einer Schleife neu kodierenDanke schön!
Ich habe Daten zusammen mit Beschriftungen/Wörterbuch für die Daten erhalten.
Ich bin froh, dass das Drehbuch funktioniert.