Fügen Sie Spaltendaten aus einer Tabelle zu einer bereits vorhandenen Tabelle hinzuHallo,
Ich versuche, Spaltendaten aus einer Ausgabetabelle (genannt „Ausgabe“) zu einer VORHANDENEN TABELLE (genannt „Stanmore und Lam“) hinzuzufügen, aber wenn ich den Befehl „Join“ verwende, wird eine leere neue Ausgabetabelle erstellt. Mein Code ist wie folgt:
output = New Table( "Output",
AddRows( 1 ),
New Column( "Y (coronal) mm", Numeric, Continuous ),
New Column( "X (sagittal) mm", Numeric, Continuous )
);
:"Y (coronal) mm" << addRows( 1 );
:"X (sagittal) mm" << addRows( 1 );
:"Y (coronal) mm"[1] = ymax;
:"X (sagittal) mm"[1] = xmax;
dt2 = Open( "Stanmore and Lam.jmp" );
dt2 << Join(
With( Data Table( output ) ),
By Matching Columns( :"Y (coronal) mm" = :"Y (coronal) mm", :"X (sagittal) mm" = :"X (sagittal) mm" )
);
Gibt es eine Möglichkeit, Zeilenwerte in einer bestimmten Spalte einfach zu einer bereits vorhandenen Spalte hinzuzufügen (beide Tabellen haben eine unterschiedliche Anzahl von Spalten und Zeilen), ohne die Daten manuell von einer Tabelle in eine andere einzugeben? Danke!
Noah
Betreff: Spaltendaten aus einer Tabelle zu einer bereits vorhandenen Tabelle hinzufügenIch konnte eine Referenz festlegen, indem ich dem oben vorgeschlagenen Code Folgendes hinzufügte:
toBeConcat = dt2 << Join(
With( Data Table( output ) ),
"Stanmore and Lam",
Update,
By Matching Columns(
:Name( "Y (coronal) mm" ) = :Name( "Y (coronal) mm" ),
:Name( "X (sagittal) mm" ) = :Name( "X (sagittal) mm" )
)
);
dt2 << Concatenate( toBeConcat, append to first table );
Dies 1) aktualisiert das Format meiner Ausgabe, um es an das der Stanmore- und Lam-Tabelle anzupassen, und 2) verkettet diese Ausgabe mit der Originaltabelle, ohne eine neue Ausgabedatentabelle zu erstellen. Jetzt macht der Code genau das, was ich brauche. Vielen Dank für deine Hilfe!
Betreff: Spaltendaten aus einer Tabelle zu einer bereits vorhandenen Tabelle hinzufügenMein Kommentar zur Option „UPDATE“ kümmert sich darum. Einfach hinzufügen
Aktualisieren,
zu Ihrem Join hinzufügen, und er wird verarbeiten, was Sie wollen.
Betreff: Spaltendaten aus einer Tabelle zu einer bereits vorhandenen Tabelle hinzufügenDanke für die schnelle Antwort! Diese Syntax eignet sich viel besser zum Auffüllen einer neuen Tabelle mit den von mir benötigten Werten. Dadurch entsteht immer noch eine völlig neue Tabelle. Gibt es also eine Möglichkeit, einen Verweis darauf festzulegen, damit ich sie mit meiner „Stan and Lanmore“-Tabelle verketten kann? Danke noch einmal!
Noah
Betreff: Spaltendaten aus einer Tabelle zu einer bereits vorhandenen Tabelle hinzufügenHier ist eine Überarbeitung Ihres Skripts, um es syntaktisch korrekt zu machen. Ich kann nichts zu Ihrer Logik sagen, da Sie nicht angegeben haben, was Ihre Variablen xmax und ymax sind und auch nicht, was die Datentabelle „Stanmore und Lam“ enthält
output = New Table( "Output",
AddRows( 1 ),
New Column( "Y (coronal) mm", Numeric, Continuous ),
New Column( "X (sagittal) mm", Numeric, Continuous )
);
// You don't add rows to columns, you add rows to data tables. But since you have allready added
// a row to the new data table, you don't need to add a second row
//:"Y (coronal) mm" << addRows( 1 );
//:"X (sagittal) mm" << addRows( 1 );
// The proper form for what you are trying to do is:
// :Name("complex name")
//:"Y (coronal) mm"[1] = ymax;
//:"X (sagittal) mm"[1] = xmax;
:Name("Y (coronal) mm")[1] = ymax;
:Name("X (sagittal) mm")[1] = xmax;
dt2 = Open( "Stanmore and Lam.jmp" );
dt2 << Join(
With( Data Table( output ) ),
// You may want to use the "UPDATE" option to copy the matching rows from the joining table to the
// initial table
// Update,
// The proper naming structure has been replaced here too
By Matching Columns( :Name("Y (coronal) mm") = :Name("Y (coronal) mm") , :Name("X (sagittal) mm") = :Name("X (sagittal) mm") )
);