Comment trouver l'intersection de deux noms de colonnes de tableaux ?Salut,
J'ai deux tables de données avec des noms de colonnes similaires et j'aime écrire un script pour trouver le chevauchement (intersection) de deux noms de colonnes et écrire l'intersection dans une nouvelle table de données. J'ai essayé d'utiliser Tables et joins et cela n'a pas fonctionné pour moi.
J'apprécie ton aide. Merci
Re : Comment trouver l'intersection de deux noms de colonnes de tableaux ?Merci Jim.
Re : Comment trouver l'intersection de deux noms de colonnes de tableaux ?1=les données proviennent uniquement du tableau de données 1
2=les données proviennent uniquement du tableau de données 2
3=les données proviennent des deux tables de données (une correspondance)
Voir page 288 de la documentation Utilisation de JMP.
Aide==>Livres==>Utilisation de JMP
Re : Comment trouver l'intersection de deux noms de colonnes de tableaux ?Merci. J'ai joint la sortie. Il y a 25 lignes avec Match Flag 3 et seulement deux avec Match Flag 1. Je m'attendais à seulement deux lignes sans correspondance. Que signifient les drapeaux de match 1 et 3 ? (fréquence ?).
Re : Comment trouver l'intersection de deux noms de colonnes de tableaux ?c'est ce que tu veux?Notez la valeur de l'indicateur de correspondance pour les lignes introuvables dans les deux tables de données.
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 : Comment trouver l'intersection de deux noms de colonnes de tableaux ?Merci. Je l'ai essayé et je n'ai pas vu le tableau de sortie. J'ai joint mes deux tableaux de données d'entrée.
Re : Comment trouver l'intersection de deux noms de colonnes de tableaux ?OK, je suis maintenant totalement confus... pouvez-vous s'il vous plaît fournir quelques tableaux de données d'entrée et le tableau de données de résultats souhaité ?
Re : Comment trouver l'intersection de deux noms de colonnes de tableaux ?@À ,
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;Pouvez-vous travailler avec les colonnes communes en dehors de la table de données, puis définir une nouvelle table ?
Si tel est le cas, regardez l'exemple ci-dessus.
Re : Comment trouver l'intersection de deux noms de colonnes de tableaux ?Merci Jim. Mes tableaux de données ne sont pas égaux en nombre de lignes et le tableau final doit être l'intersection des deux colonnes similaires. J'ai par exemple 25 lignes dans le tableau A et 25 lignes dans le tableau B et la sortie devrait être les deux lignes qui ne sont pas communes entre des colonnes similaires.
Re : Comment trouver l'intersection de deux noms de colonnes de tableaux ?Voici un exemple simple de la façon de procéder.Je ne suis pas sûr de ce qu'est le tableau de données combiné final, j'ai donc supposé qu'il devait s'agir d'une concaténation.
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>