Verwenden von Update() zum Hinzufügen neuer Zeilen zur HaupttabelleIch versuche, eine Tabelle zu aktualisieren, die manchmal neue Zeilen enthält (basierend auf einem Index).
Es scheint, dass ich Join verwenden muss, da das Folgende nicht zu funktionieren scheint (hier ist der Index die Namensspalte).
Names Default To Here( 1 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = New Table( "Little Class",
Add Rows( 3 ),
New Column( "name",
Character,
Nominal,
Set Values( {"ALICE", "NEW_NAME", "OTHER_NEW_NAME"} )
),
New Column( "height",
Continuous,
Set Values( [999, 999, 999] )
),
New Column( "weight",
Continuous,
Set Values( [999, 999, 999] )
),
New Column( "RANK",
Continuous,
Set Values( [3, 1, 2] )
),
New Column( "CODE",
Continuous,
Set Values( [0, 1, 1] )
)
);
dt1 << Update(
With( Data Table( "Little Class" ) ),
Match Columns( :name = :name ),
Add columns from Update table( {:RANK} )
);
Datenmischung und -bereinigungBetreff: Update() verwenden, um neue Zeilen zur Haupttabelle hinzuzufügenDie neue Join-Plattform könnte so aussehen:
https://community.jmp.com/t5/JMP-Wish-List/Tables-join-option-to-update-main-table/idc-p/653857/highlight/true#M4537

Betreff: Update() verwenden, um neue Zeilen zur Haupttabelle hinzuzufügenIch habe den Wunsch geschrieben, eine Option zum Aktualisieren der Haupttabelle hinzuzufügen:
Tabellen verknüpfen: Option zum Aktualisieren der Haupttabelle
Unterstützen Sie es gerne 
Betreff: Update() verwenden, um neue Zeilen zur Haupttabelle hinzuzufügenMeistens würde ich es mit unsichtbaren Tabellen machen, weil das die Möglichkeit gibt, sie einfach aus der JMP-Fensterliste zu öffnen (sofern sie nicht geschlossen wurden).
Unsichtbare Tabellen sind in der Fensterliste grau (transparent) und können durch Doppelklicken sichtbar gemacht werden.

Ich empfehle außerdem, Namen zu Tabellen hinzuzufügen, da es einfacher ist, mit dem Debuggen zu beginnen, wenn viele Tabellen geöffnet sind und der Code aus irgendeinem Grund nicht ordnungsgemäß ausgeführt wurde. Ohne Umbenennen werden sie einfach zu einem Durcheinander wie: Teilmenge von etwas 1, Teilmenge von etwas 2, Ohne Titel 1 und so weiter.
Unten sehen Sie ein Beispiel, das dt als unsichtbar öffnet und dt_new als unsichtbare Tabelle erstellt. Fügen Sie sie dann einer neuen Tabelle namens JOINED_TABLE hinzu, die dem Benutzer angezeigt wird, und schließen Sie schließlich dt und dt_new, ohne sie zu speichern. <BR />
</CODE><CODE class=" language-jsl">Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp", invisible);
dt_new = New Table( "Little Class",
Add Rows( 3 ),
New Column( "name",
Character,
Nominal,
Set Values( {"ALICE", "NEW_NAME", "OTHER_NEW_NAME"} )
),
New Column( "height",
Continuous,
Set Values( [999, 999, 999] )
),
New Column( "weight",
Continuous,
Set Values( [999, 999, 999] )
),
New Column( "RANK",
Continuous,
Set Values( [3, 1, 2] )
),
New Column( "CODE",
Continuous,
Set Values( [0, 1, 1] )
),
invisible
);
dt_joined = dt << Join(
With(dt_new),
Merge Same Name Columns,
By Matching Columns(:name = :name),
Drop multiples(0, 0),
Include Nonmatches(1, 1),
Preserve main table order(1),
Output table("JOINED_TABLE")
);
Close(dt, no save);
Close(dt_new, no save);
Betreff: Update() verwenden, um neue Zeilen zur Haupttabelle hinzuzufügenIch verstehe. Was würden Sie empfehlen, um diesen letzten Schritt einfach zu halten?
Ich habe „dt“ (original) und „dt_joined“ („dt“ + „dt_new“).
Betreff: Update() verwenden, um neue Zeilen zur Haupttabelle hinzuzufügenIch habe die gleiche Option getestet und sie verhielt sich genauso: Es wurde eine neue Tabelle erstellt.
Ich kann die Mühe mit dem Umgang mit offenen Tabellen in JMP teilen, aber während der Skripterstellung ist es ziemlich einfach (ich werde etwas zusätzlichen Code hinzufügen), sie als unsichtbar/privat zu öffnen/erstellen und sie sofort zu schließen, ohne sie zu speichern, nachdem Sie wissen, dass Sie dies nicht tun werden werde sie nicht mehr brauchen.
Betreff: Update() verwenden, um neue Zeilen zur Haupttabelle hinzuzufügen„Abgesehen davon, dass Sie sich mit zusätzlichen Tischen herumschlagen müssen“
Exakt. Es wird eine neue Tabelle generiert, obwohl ich den Join mit ausgewählter Aktualisierungsoption durchführe.
dt<< Join(
With( dt_new ),
Update, // this option is selected
By Matching Columns( :index= :index),
Drop multiples( 0, 0 ),
Include Nonmatches( 1, 1 ),
Preserve main table order( 1 )<BR />);<BR /><BR />// Opens new table apart of dt and dt_newBetreff: Update() verwenden, um neue Zeilen zur Haupttabelle hinzuzufügenIch habe hier einen ähnlichen Beitrag aus der Community gefunden und es wurde empfohlen, „Join“ anstelle von „Update“ zu verwenden, wenn neue Zeilen hinzugefügt werden:
Aktualisieren von JMP-Datentabellen
Gibt es einen Grund, warum Sie nicht „join“ anstelle von „update“ verwenden konnten (außer dass Sie sich mit zusätzlichen Tabellen befassen müssen)?
Aus der JMP-Hilfe: Datentabellen aktualisieren :
Wenn Sie zwei Datentabellen haben und Ihre ursprüngliche Tabelle mit Daten aus einer neuen Tabelle aktualisieren möchten, wählen Sie Tabellen > Aktualisieren . Der Update-Befehl ist ein Sonderfall von Join in Place. Es handelt sich um einen Join mit aktivierter Update-Option , und es entsteht keine neue Tabelle.
Betreff: Update() verwenden, um neue Zeilen zur Haupttabelle hinzuzufügenIhre Annahme ist richtig, Sie müssen die Join-Plattform nutzen, um das zu tun, was Sie wollen.