Ich versuche, Änderungen an meiner ursprünglichen Datentabelle zu vermeiden und sie bei einigen Vorgängen intakt zu halten
Sagen wir, wir haben ein solches Szenario
for (i = 1, 3, i++,
dt_process = data table("dt_original);
dt_process << newcolumn("elclassico", character,formula(if (Contains(:club, "BARC") , "Barcelona", "delete")
dt_process << save("save_my_club"||char(i))
)Nach diesem Vorgang, wenn i = 2 ist, sagt mir die JSL, dass dt_original nicht gefunden werden kann, da der Name geändert wurde.
Warum passiert das?
Durch Speichern wird der Name des Datensatzes geändert und Sie verwenden immer einen Verweis auf dieselbe Datentabelle (dt_original).
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
show(dt << get name);
dt << Save("$temp\deleteme Big Class.jmp"); // explicit location
show(dt << get name);
Sie könnten stattdessen eine Teilmenge erstellen und diese speichern (wenn Sie diese nicht geöffnet lassen müssen, denken Sie daran, sie zu schließen).
dt_process = dt_original << Subset(Selected Columns(0), All Rows);