Come trovare l'intersezione dei nomi delle colonne di due tabelle?Ciao,
Ho due tabelle di dati con nomi di colonna simili e mi piace scrivere uno script per trovare la sovrapposizione (intersezione) di due nomi di colonna e scrivere l'intersezione in una nuova tabella di dati. Ho provato a utilizzare Tabelle e unirmi e non ha funzionato per me.
Apprezzo il vostro aiuto. Grazie
Ri: Come trovare l'intersezione dei nomi delle colonne di due tabelle?Grazie Jim.
Ri: Come trovare l'intersezione dei nomi delle colonne di due tabelle?1=i dati provengono solo dalla tabella dati 1
2=i dati provengono solo dalla tabella dati 2
3=i dati provengono da entrambe le tabelle di dati (una corrispondenza)
Vedere pagina 288 nella documentazione Utilizzo di JMP
Aiuto==>Libri==>Utilizzo di JMP
Ri: Come trovare l'intersezione dei nomi delle colonne di due tabelle?Grazie. Ho allegato l'output. Sono 25 file con Match Flag 3 e solo due con Match Flag 1. Mi aspettavo solo due righe senza corrispondenza. Cosa significa Match Flag 1 e 3? (frequenza?).
Re: Come trovare l'intersezione dei nomi delle colonne di due tabelle?È questo che vuoi?Nota il valore del flag di corrispondenza per le righe non trovate in entrambe le tabelle di dati.
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 )
);
Ri: Come trovare l'intersezione dei nomi delle colonne di due tabelle?Grazie. L'ho provato e non ho visto la tabella di output. Ho allegato le mie due tabelle di dati di input.
Ri: Come trovare l'intersezione dei nomi delle colonne di due tabelle?OK, ora sono completamente confuso ... puoi fornire un paio di tabelle di dati di input e la tabella di dati del risultato desiderato?
Ri: Come trovare l'intersezione dei nomi delle colonne di due tabelle?@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;Puoi lavorare con le colonne comuni che si trovano all'esterno della tabella dei dati e quindi definire una nuova tabella?
Se è così, guarda l'esempio sopra.
Ri: Come trovare l'intersezione dei nomi delle colonne di due tabelle?Grazie Jim. Le mie tabelle di dati non hanno lo stesso numero di righe e la tabella finale dovrebbe essere l'intersezione delle due colonne simili. Ad esempio, ho 25 righe nella tabella A e 25 righe nella tabella B e l'output dovrebbe essere le due righe che non sono comuni tra colonne simili.
Ri: Come trovare l'intersezione dei nomi delle colonne di due tabelle?Ecco un semplice esempio di come farlo.Non sono sicuro di quale sia la tabella di dati combinata finale, quindi ho pensato che doveva essere una concatenazione.
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>