¿Cómo encontrar la intersección de los nombres de columna de dos tablas?Hola,
Tengo dos tablas de datos con nombres de columna similares y me gusta escribir un script para encontrar la superposición (intersección) de dos nombres de columna y escribir la intersección en una nueva tabla de datos. Intenté usar Tables y unirme y no funcionó para mí.
Aprecio tu ayuda. Gracias
Re: ¿Cómo encontrar la intersección de los nombres de las columnas de dos tablas?gracias jim
Re: ¿Cómo encontrar la intersección de los nombres de las columnas de dos tablas?1=los datos provienen solo de la tabla de datos 1
2=los datos provienen solo de la tabla de datos 2
3=los datos provienen de ambas tablas de datos (una coincidencia)
Consulte la página 288 en la documentación Uso de JMP
Ayuda==>Libros==>Uso de JMP
Re: ¿Cómo encontrar la intersección de los nombres de las columnas de dos tablas?Gracias. Adjunto la salida. Son 25 filas con Match Flag 3 y solo dos con Match Flag 1. Esperaba solo dos filas sin coincidencia. ¿Qué significa Match Flag 1 y 3? (frecuencia?).
Re: ¿Cómo encontrar la intersección de los nombres de las columnas de dos tablas?¿Es esto lo que quieres?Tenga en cuenta el valor del indicador de coincidencia para las filas que no se encuentran en ambas tablas de datos.
Names Default To Here( 1 );
input = Data Table( "input" );
output = Data Table( "output" );
dtFinal = input << Join(
With( Output ),
Match Flag( 1 ),
By Matching Columns( :boardno = :boardno ),
Drop multiples( 0, 0 ),
Include Nonmatches( 1, 1 ),
Preserve main table order( 1 ),
Merge same name columns( 1 )
);
Re: ¿Cómo encontrar la intersección de los nombres de las columnas de dos tablas?Gracias. Lo probé y no vi la tabla de salida. He adjuntado mis dos tablas de datos de entrada.
Re: ¿Cómo encontrar la intersección de los nombres de las columnas de dos tablas?OK, ahora estoy totalmente confundido... ¿puede proporcionar un par de tablas de datos de entrada y la tabla de datos de resultados deseados?
Re: ¿Cómo encontrar la intersección de los nombres de las columnas de dos tablas?@A ,
dtA = Open("$SAMPLE_DATA\Big Class.jmp");
dtB = Open("$SAMPLE_DATA\Big Class Families.jmp");
ACols = Associative Array(dtA << Get Column Names("String"));
BCols = Associative Array(dtB << Get Column Names("String"));
Intersection = ACols ;
Intersection << Intersect(BCols);
Res = Intersection << Get Keys;¿Puede trabajar con las columnas comunes fuera de la tabla de datos y luego definir una nueva tabla?
Si es así, mira el ejemplo anterior.
Re: ¿Cómo encontrar la intersección de los nombres de las columnas de dos tablas?gracias jim Mis tablas de datos no tienen el mismo número de filas y la tabla final debe ser la intersección de las dos columnas similares. Tengo, por ejemplo, 25 filas en la tabla A y 25 filas en la tabla B y el resultado debe ser las dos filas que no son comunes entre columnas similares.
Re: ¿Cómo encontrar la intersección de los nombres de las columnas de dos tablas?Aquí hay un ejemplo simple de cómo hacer esto.No estoy seguro de cuál es la tabla de datos combinados final, así que supuse que tenía que ser una concatenación.
names default to here(1);
dtA = Open("$SAMPLE_DATA\Big Class.jmp");
dtB = Open("$SAMPLE_DATA\Big Class Families.jmp");
dtACol = New Table("A Columns", private,
New Column("A", character, values(dtA<<GET column="" names=""></GET>