Uniendo tablasTengo que unir dos tablas utilizando jsl. La primera mesa se ve así:
Sin embargo, la segunda tabla puede ser así:

En esta tabla, la Molécula de Forma Pred 1 (%) (2) es la misma que la Molécula 1 (%) y se repiten los números en la columna de valores. ¿Cómo puedo especificar la unión para considerar solo uno de esos valores?
La segunda tabla para unirse puede verse así:

En este caso, ¿cómo puedo especificar en la unión que la Molécula 1 (%) en la primera tabla es la misma que la Molécula de Forma Pred1 (%) (2) en la tabla que se debe unir?
La mesa final que necesito debería ser algo como esto:
Gracias por cualquier ayuda.
Re: uniendo tablas @pmroz ,
Gracias por la aclaración. Mi mal, me preguntaba si había una mejor manera de abordar esto que me estaba perdiendo.
@pmroz escribió:
Yo estaba sugiriendo recodificar para cambiar valores En una columna, no cambiar el nombre de la columna. Para usar la opción de recodificar, resalte la columna que desea recodificar y haga clic en Cols> Utilidades> Recode (v12) o Cols> Recode (v13).
Re: uniendo tablasYo estaba sugiriendo recodificar para cambiar valores En una columna, no cambiar el nombre de la columna. Para usar la opción de recodificar, resalte la columna que desea recodificar y haga clic en Cols> Utilidades> Recode (v12) o Cols> Recode (v13).
Re: uniendo tablas @txnelson Y @pmroz ,
Si es posible, me gustaría hacer una pregunta, ¿por qué recomendaría que los nombres de las columnas se recodifiquen / cambien de nombre dada la estructura de la tabla? La estructura actual de la tabla compartida muestra que los datos están en las filas. Si bien entiendo, uno siempre puede transponer los datos y cambiar el nombre de las columnas, preguntándose si ese es el enfoque que está recomendando. Por favor aconséjame
Re: uniendo tablasPuede usar el cuadro de diálogo Buscar (Buscar) para cambiar los nombres de columna o partes de los nombres de columna

Re: uniendo tablas @Aam_jmp ,
He probado este código usando tablas intentar y unir. Puede ampliarlo adecuadamente para incluir try1 si es necesario.
Clear Log(); Clear Globals();
// Open Data Tables
dt1 = Open(FilePath1); // Where FilePath1 points to your file location for JOIN table
dt2 = Open(FilePath2); // Where FilePath2 points to your file location for try table
// Get Y values from main table
YVals = dt1:Y << Get Values;
// Get Col values from second table
ColVals = dt2:Col << Get Values;
// Loop through the values
for(i = 1, i <= N Items(YVals), i++,
for(r = 1, r <= N Items(ColVals), r++,
If(Contains(ColVals[r],YVals[i]),
ColVals[r] = YVals[i];
);
);
);
// Assign Corrected Values back to dt2
dt2 << New Column("CorrectedCol",Character,Continuous, << Set Values(ColVals));
// Join Tables
dt_Intermediate = dt1 << Join(With(dt2 ),
Select( :Y, :Quan Reqd ),
SelectWith( :Value ),
By Matching Columns( :Y = :CorrectedCol ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 )
);
// Remove Duplicates
dt_Results = dt_Intermediate << Summary(
Group( :Y, :Quan Reqd, :Value ),
Freq( "None" ),
Weight( "None" )
);
Re: uniendo tablasHola Uday, he añadido las tablas.
Re: uniendo tablas @Aam_jmp ,
Vea a continuación algunos ejemplos de código. Esto debería funcionar para cualquier tabla de datos en JMP. Si no es así, le solicitaría que comparta una muestra de sus tablas de datos y puedo intentar ver cuál es el problema.
Clear Log(); Clear Globals();
// Open Sample Data
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
// Extract Column Names
ColNames = dt << Get Column Names("String");
// Extract Rows from a column
Cities = dt:city << Get Values;
// Change Column Name
Col = Column(dt,1);
Col << Set Name("City_Edit");
// Change Row Values
dt:City_Edit[7] = "TEMPE";
Re: uniendo tablas ¿Cómo se recodifican los nombres de columna? @pmroz Además, la opción Recode está desactivada para mi tabla.
Re: uniendo tablasUday, ni siquiera puedo extraer los nombres de las columnas que supongo, debido a los números y al "%" que ingresan. ¿Puedes decirme cómo puedo hacerlo? Por ahora, estoy trabajando en este script para extraer los nombres. Gracias.
dt = Abrir ("C: \ Users \ filepath \ try1.jmp");
col_names = dt << Get Column Names ();
Mostrar (col_names);
Re: uniendo tablas Cols> Utilidades> Recode le permitirá cambiar los valores a los valores estándar.
Re: uniendo tablas @Aam_jmp ,
2 pasos.
Paso 1: Extrae los valores de los títulos en la tabla 1
Paso 2: recorra los títulos en la tabla 1 y busque nombres similares en la tabla 2, luego actualice la fila para reflejar lo mismo
Re: uniendo tablas¿Cómo puedo manipular los nombres en la columna para que se parezcan a la tabla a la que debe unirse?
Re: uniendo tablas @Aam_jmp ,
La unión interna entre tablas buscará las columnas que coincidan. ¿Se puede cambiar el nombre de las filas que son iguales en la tabla 2? Eso le dará automáticamente el resultado que desea. A menos que tus filas sean demasiadas donde no puedas seguir la pista, esta es una forma de hacerlo.