Aggiungi i dati delle colonne da una tabella a una tabella già esistenteCiao,
Sto cercando di aggiungere i dati della colonna da una tabella di output (chiamata "output") a una TABELLA ESISTENTE (chiamata "Stanmore e Lam"), ma quando uso il comando join crea una nuova tabella di output vuota. Il mio codice è il seguente:
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" )
);
C'è un modo per aggiungere semplicemente i valori di riga in una colonna specifica a una colonna preesistente (entrambe le tabelle hanno numeri diversi di colonne e righe) senza inserire manualmente i dati da una tabella all'altra? Grazie!
Noè
Re: aggiungere dati di colonna da una tabella a una tabella già esistenteSono stato in grado di impostare un riferimento aggiungendo quanto segue al codice che hai proposto sopra:
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 );
Questo 1) aggiorna il formato del mio output per adattarlo a quello della tabella Stanmore e Lam e 2) concatena quell'output alla tabella originale senza creare una nuova tabella di dati di output. Quindi ora il codice fa esattamente ciò di cui ho bisogno. Grazie mille per il vostro aiuto!
Re: aggiungere dati di colonna da una tabella a una tabella già esistenteIl mio commento sull'opzione "AGGIORNAMENTO" lo gestirà. Basta aggiungere
Aggiornare,
al tuo Join e gestirà ciò che desideri.
Re: aggiungere dati di colonna da una tabella a una tabella già esistenteGrazie per la risposta rapida! Questa sintassi funziona molto meglio per popolare una nuova tabella con i valori di cui ho bisogno. Questo produce ancora una tabella completamente nuova, quindi c'è un modo per impostare un riferimento ad essa in modo da poterla concatenare alla mia tabella "Stan e Lanmore"? Grazie ancora!
Noè
Re: aggiungere dati di colonna da una tabella a una tabella già esistenteEcco una rielaborazione del tuo script, per renderlo sintatticamente corretto. Non posso parlare con la tua logica, dal momento che non hai incluso quali sono le tue variabili xmax e ymax, né cosa contiene la tabella di dati "Stanmore and Lam"
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") )
);