Hallo, ich versuche, einen Join als Teil eines Skripts durchzuführen. Allerdings bringen mich die Teile „select“ und „selectwith“ durcheinander. Ich wähle Spalten verknüpfter Datentabellen weiter oben im Skript dynamisch aus und übergebe sie als Liste an die Teile „Auswählen“ und „Auswählen mit“. Ich habe Eval(Eval Expr(Expr())) ausprobiert, aber das hat nicht funktioniert. Ich glaube, ich verstehe einfach falsch, wie diese beiden Informationen tatsächlich aufnehmen.
Data Table(dt2b) << Join(
With(Data Table("Experimental Info")),
Match Flag(1),
Select(selectedCols1String),
SelectWith(selectedCols2String),
By Matching Columns(:ID = :ID),
Drop multiples(0, 0),
Include Nonmatches(0, 0),
Preserve main table order(1)
);Die Ausgabe für selectedCols1String und selectedCols2String sieht folgendermaßen aus: „:ID, :2Theta, :Data, :Error, :Raw Data, :Raw Error“
Danke!
Sie sollten keinen String, sondern eine Liste verwenden und Eval damit verwenden
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Trial1.jmp");
dt2 = Open("$SAMPLE_DATA/Little.jmp");
select_cols = {"popcorn", "oil amt", "batch", "yield"};
with_cols = {"yield", "batch"};
dt3 = dt << Join(
With(dt2),
Select(Eval(select_cols)),
SelectWith(Eval(with_cols)),
By Matching Columns(:popcorn = :popcorn, :batch = :batch, :oil amt = :oil)
);
Hier verwende ich eine Liste von Zeichenfolgen, aber das könnten auch Listenreferenzen sein
Mehr anzeigen...
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Trial1.jmp");
dt2 = Open("$SAMPLE_DATA/Little.jmp");
select_cols = {:popcorn, :oil amt, :batch, :yield};
with_cols = {:yield, :batch};
dt3 = dt << Join(
With(dt2),
Select(Eval(select_cols)),
SelectWith(Eval(with_cols)),
By Matching Columns(:popcorn = :popcorn, :batch = :batch, :oil amt = :oil)
);