Ich versuche, Änderungen an meiner ursprünglichen Datentabelle zu vermeiden und sie bei einigen Operationen nicht intakt zu halten
sagen wir, wir haben diese Art von 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 das JSL, dass dt_original nicht gefunden werden kann, da der Name geändert wurde.
Warum passiert das?
Speichern ändert den Namen des Datensatzes und Sie verwenden immer den 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);