Tische zusammenfügenIch muss zwei Tabellen mit jsl verbinden. Die erste Tabelle sieht so aus:
Die zweite Tabelle kann jedoch entweder so aussehen:

In dieser Tabelle ist Pred Form Molecule 1 (%)(2) dasselbe wie Molecule 1(%) und die Zahlen in der Wertespalte werden wiederholt. Wie kann ich den Join so festlegen, dass nur einer dieser Werte berücksichtigt wird?
Die zweite zu verbindende Tabelle kann wie folgt aussehen:

Wie kann ich in diesem Fall in der Verknüpfung angeben, dass Molekül 1 (%) in der ersten Tabelle mit Pred Form Molecule1 (%)(2) in der Tabelle übereinstimmt, die verknüpft werden muss?
Der Abschlusstisch, den ich brauche, sollte ungefähr so aussehen:
Vielen Dank für jede Hilfe.
Betreff: Tabellen verbinden@pmroz ,
Danke für das Aufklären. Mein Fehler, ich habe mich gefragt, ob es einen besseren Weg gibt, an die Sache heranzugehen, der mir fehlte.
@pmroz schrieb:
Ich habe vorgeschlagen, den Code neu zu codieren, um ihn zu ändern Werte in einer Spalte, ändern Sie nicht den Namen der Spalte.Um die Neukodierungsoption zu verwenden, markieren Sie die Spalte, die Sie neu kodieren möchten, und klicken Sie auf Spalten > Dienstprogramme > Neu kodieren (v12) oder Spalten > Neu kodieren (V.13).
Betreff: Tabellen verbindenIch habe vorgeschlagen, den Code neu zu codieren, um ihn zu ändern Werte in einer Spalte, ändern Sie nicht den Namen der Spalte.Um die Neukodierungsoption zu verwenden, markieren Sie die Spalte, die Sie neu kodieren möchten, und klicken Sie auf Spalten > Dienstprogramme > Neu kodieren (v12) oder Spalten > Neu kodieren (V.13).
Betreff: Tabellen verbinden@txnelson & @pmroz ,
Wenn ich darf, möchte ich eine Frage stellen: Warum würden Sie angesichts der Tabellenstruktur empfehlen, Spaltennamen neu zu kodieren/umbenennen?Die aktuelle Struktur der gemeinsam genutzten Tabelle zeigt, dass sich die Daten in den Zeilen befinden. Obwohl ich verstehe, dass man die Daten jederzeit transponieren und Spalten umbenennen kann, frage ich mich, ob das der Ansatz ist, den Sie empfehlen? Bitte um Rat
Betreff: Tabellen verbindenSie können das Dialogfeld „Suchen“ verwenden, um Spaltennamen oder Teile von Spaltennamen zu ändern

Betreff: Tabellen verbinden@Aam_jmp ,
Ich habe diesen Code mithilfe von Tabellen „Try“ und „Join“ getestet. Sie können es bei Bedarf entsprechend erweitern, um try1 einzuschließen.
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" )
);
Betreff: Tabellen verbindenHallo Uday, ich habe die Tabellen hinzugefügt.
Betreff: Tabellen verbinden@Aam_jmp ,
Nachfolgend finden Sie einige Beispielcodes. Dies sollte für jede Datentabelle in JMP funktionieren. Wenn dies nicht der Fall ist, würde ich Sie bitten, mir ein Beispiel Ihrer Datentabellen zur Verfügung zu stellen, damit ich versuchen kann, herauszufinden, wo das Problem liegt.
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";
Betreff: Tabellen verbindenWie kodieren Sie Spaltennamen neu?@pmroz Außerdem ist die Option „Neu kodieren“ für meine Tabelle ausgegraut.
Betreff: Tabellen verbindenHeute kann ich aufgrund der Zahlen und des „%“-Zeichens nicht einmal die Spaltennamen extrahieren. Können Sie mir sagen, wie ich das machen kann? Im Moment arbeite ich an diesem Skript, um die Namen zu extrahieren. Danke.
dt = Open( "C:\Benutzer\Dateipfad\try1.jmp" );
col_names = dt << Get Column Names();
Show(col_names);
Betreff: Tabellen verbindenSpalten > Dienstprogramme > Neu kodieren ermöglicht es Ihnen, Werte in Standardwerte zu ändern.
Betreff: Tabellen verbinden@Aam_jmp ,
2 Schritte.
Schritt 1: Extrahieren Sie die Werte der Titel in Tabelle 1
Schritt 2: Gehen Sie die Titel in Tabelle 1 durch und suchen Sie nach ähnlichen Namen in Tabelle 2. Aktualisieren Sie dann die Zeile, um dieselben wiederzugeben
Betreff: Tabellen verbindenWie kann ich die Namen in der Spalte so manipulieren, dass sie genauso aussehen wie die Tabelle, mit der sie verknüpft werden muss?
Betreff: Tabellen verbinden@Aam_jmp ,
Inner Join zwischen Tabellen sucht nach passenden Spalten. Können Sie identische Zeilen in Tabelle 2 umbenennen? Dadurch erhalten Sie automatisch das gewünschte Ergebnis. Sofern Sie nicht zu viele Zeilen haben, in denen Sie den Überblick nicht behalten können, ist dies eine Möglichkeit, dies zu tun.