Agregar datos de columna de una tabla a una tabla ya existenteHola,
Estoy tratando de agregar datos de columna de una tabla de salida (llamada "salida") a una TABLA EXISTENTE (llamada "Stanmore y Lam"), pero cuando uso el comando unir, se crea una nueva tabla de salida vacía. Mi código es el siguiente:
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" )
);
¿Hay alguna manera de simplemente agregar valores de fila en una columna específica a una columna preexistente (ambas tablas tienen diferentes números de columnas y filas) sin ingresar manualmente los datos de una tabla a otra? ¡Gracias!
Noah
Re: Agregar datos de columna de una tabla a una tabla ya existentePude establecer una referencia agregando lo siguiente al código que propuso anteriormente:
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 );
Este 1) actualiza el formato de mi salida para que se ajuste al de la tabla de Stanmore y Lam y 2) concatena esa salida a la tabla original sin crear una nueva tabla de datos de salida. Así que ahora el código hace exactamente lo que necesito. ¡Muchas gracias por su ayuda!
Re: Agregar datos de columna de una tabla a una tabla ya existenteMi comentario sobre la opción "ACTUALIZAR" manejará eso. Solo agrega
Actualizar,
a tu Join, y se encargará de lo que quieras.
Re: Agregar datos de columna de una tabla a una tabla ya existente¡Gracias por la rápida respuesta! Esta sintaxis funciona mucho mejor para rellenar una nueva tabla con los valores que necesito. Esto todavía produce una tabla completamente nueva, así que ¿hay alguna manera de que pueda establecer una referencia a ella para poder concatenarla a mi tabla "Stan y Lanmore"? ¡Gracias de nuevo!
Noah
Re: Agregar datos de columna de una tabla a una tabla ya existenteAquí está una revisión de su script, para hacerlo sintácticamente apropiado. No puedo hablar de su lógica, ya que no incluyó las variables xmax y ymax, ni la tabla de datos "Stanmore y 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") )
);