Wie verwende ich Select Where () mit Contains (), um Teilübereinstimmungen in der Datentabelle zu finden?Ich habe eine Liste
myParaList = {Current_I20_, Voltage_CIB_, Capacitance_DIFF_, Resistance_FURR_};und eine Datentabelle mit einer Spalte namens Parameter mit mehreren Zeilen, von denen einige Einträge wie enthalten
Current_I20_Stage2
Voltage_CIB_Stage3
Capacitance_DIFF_corner_Stage1
Resistance_FURR__side_Stage3
Benutzen meine Liste mit Enthält() um die vollständigen Parameternamen aus der Datentabelle in eine Liste zu extrahieren. Wie geht das über JSL?
Zunächst einmal wird im Folgenden nichts in meiner Datentabelle ausgewählt. Wo mache ich einen Fehler?
dt<< select where(Contains(mylist, As column (Parameter)));
Automatisierung und SkripterstellungWindowsBetreff: Wie verwende ich Select Where () mit Contains (), um Teilübereinstimmungen in der Datentabelle zu finden?Versuchen Sie, nach der schließenden Klammer Ihres Funktionsaufrufs leere eckige Klammern einzufügen.
dt<< select where(Contains(mylist, As column (Parameter)[]));
Betreff: Wie verwende ich Select Where () mit Contains (), um Teilübereinstimmungen in der Datentabelle zu finden?Sie benötigen vollständige Übereinstimmungen, wenn Sie „Contains“ mit einer Liste verwenden. Sie können Word() verwenden, um die Werte Ihrer Datentabelle in das gleiche Format wie Ihre Liste zu bringen, und dann „Contains“ verwenden (auch die Liste in eine Liste mit Zeichenfolgen konvertieren).
Names Default To Here(1);
dt = New Table("Untitled 2",
Add Rows(6),
Compress File When Saved(1),
New Column("param",
Character,
"Nominal",
Set Values(
{"Current_I20_Stage2", "Voltage_CIB_Stage3", "Capacitance_DIFF_corner_Stage1",
"Resistance_FURR__side_Stage3", "a", "b"}
)
)
);
my_list = {"Current_I20_", "Voltage_CIB_", "Capacitance_DIFF_", "Resistance_FURR_"};
rows = dt << Get Rows Where(Contains(my_list, Word([1 2], :param, "_") || "_"));
vals = dt[rows, "param"];
</CODE></P>
<P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-710241" slang="en-US" mode="NONE">Betreff: Wie verwende ich Select Where () mit Contains (), um Teilübereinstimmungen in der Datentabelle zu finden?</LINGO-SUB><LINGO-BODY id="lingo-body-710241" slang="en-US" mode="NONE"><P>So gehe ich vor, wenn ich nach Teilübereinstimmungen suche.</P>
<PRE><CODE class=" language-jsl">dt = New Table( "TestRegex", Add Rows( 8 ),
New Column( "TestCol", Character, "Nominal",
Set Values(
{"Current_I20_Stage2", "xyz", "Capacitance_DIFF_corner_Stage1", "lmnop",
"aaa", "Voltage_CIB_Stage3", "Voltage_CIB_Stage3",
"Resistance_FURR__side_Stage3"}
)
)
);
myList = {"Current_I20_", "Voltage_CIB_", "Capacitance_DIFF_", "Resistance_FURR_"};
for (i = 1, i <= nitems(mylist), i++,
match_rows = dt << get rows where(! is missing(regex(as column(dt, "TestCol"),
mylist[i], "\0", ignorecase)));
print(match_rows);
);
Betreff: Wie verwende ich Select Where () mit Contains (), um Teilübereinstimmungen in der Datentabelle zu finden?@jthi Dies funktioniert, scheint jedoch ausgeblendete und ausgeschlossene Zeilen in der Datentabelle nicht zu berücksichtigen dt .
Ich möchte einige Zeilen basierend auf einer anderen Spalte in meiner Datentabelle ausschließen, wie in JSL unten. Vielleicht könnte dies innerhalb getan werden Zeilen abrufen, wo () ?
Names Default To Here(1);
clear log ();
dt = New Table("Untitled 2",
Add Rows(6),
Compress File When Saved(1),
New Column("param",
Character,
"Nominal",
Set Values(
{"Current_I20_Stage2", "Voltage_CIB_Stage3", "Capacitance_DIFF_corner_Stage1",
"Resistance_FURR__side_Stage3", "a", "b"}
)
),
New Column("Group",
Character,
"Nominal",
Set Values(
{"A", "B", "C", "D", "E", "F"}
)
),
);
ToHideAndExcludeList = {"A", "D", "F"};
dt << Select Where( Contains(ToHideAndExcludeList, :Group) );
sr = dt << Invert Row Selection;
sr << Hide and Exclude;
my_list = {"Current_I20_", "Voltage_CIB_", "Capacitance_DIFF_", "Resistance_FURR_"};
rows = dt << Get Rows Where(Contains(my_list, Word([1 2], :param, "_") || "_"));
vals = dt[rows, "param"];
Betreff: Wie verwende ich Select Where () mit Contains (), um Teilübereinstimmungen in der Datentabelle zu finden?Sie können den Zeilenstatus als weitere Bedingung angeben.
Betreff: Wie verwende ich Select Where () mit Contains (), um Teilübereinstimmungen in der Datentabelle zu finden?@Mark_Bailey Danke. Meinen Sie die Verwendung des Zeilenstatus mit „Contains“? Könnte ich bitte ein Beispiel haben?
Betreff: Wie verwende ich Select Where () mit Contains (), um Teilübereinstimmungen in der Datentabelle zu finden?Das sollte funktionieren.
Names Default To Here( 1 );
Clear Log();
dt = New Table( "Untitled 2",
Add Rows( 6 ),
Compress File When Saved( 1 ),
New Column( "param",
Character,
"Nominal",
Set Values( {"Current_I20_Stage2", "Voltage_CIB_Stage3", "Capacitance_DIFF_corner_Stage1", "Resistance_FURR__side_Stage3", "a", "b"} )
),
New Column( "Group", Character, "Nominal", Set Values( {"A", "B", "C", "D", "E", "F"} ) ),
);
ToHideAndExcludeList = {"A", "D", "F"};
dt << Select Where( Contains( ToHideAndExcludeList, :Group ) );
sr = dt << Invert Row Selection;
sr << Hide and Exclude;
my_list = {"Current_I20_", "Voltage_CIB_", "Capacitance_DIFF_", "Resistance_FURR_"};
exrows = dt << Get Excluded Rows;
rows = dt << Get Rows Where( All( Contains( my_list, Word( [1 2], :param, "_" ) || "_" ), Contains( exrows, Row() ) == 0 ) );
vals = dt[rows, "param"];Betreff: Wie verwende ich Select Where () mit Contains (), um Teilübereinstimmungen in der Datentabelle zu finden?@mmarchandTSI Vielen Dank. Das funktioniert, aber ich hätte einen Ansatz vorgezogen, bei dem man nach Zeilenstatus filtern könnte (as @Mark_Bailey vorgeschlagen) unten Enthält () . Dies würde jegliche Manipulation der Datentabelle vermeiden.
Betreff: Wie verwende ich Select Where () mit Contains (), um Teilübereinstimmungen in der Datentabelle zu finden?Sie könnten !Excluded() und !Hidden() verwenden, aber Contains() scheint in diesem Fall einige lustige Dinge zu tun, also müssen Sie damit umgehen, All() scheint in diesem Fall zu funktionieren
Names Default To Here(1);
Clear Log();
dt = New Table("Untitled 2",
Add Rows(6),
Compress File When Saved(1),
New Column("param",
Character,
"Nominal",
Set Values(
{"Current_I20_Stage2", "Voltage_CIB_Stage3", "Capacitance_DIFF_corner_Stage1",
"Resistance_FURR__side_Stage3", "a", "b"}
)
),
New Column("Group", Character, "Nominal", Set Values({"A", "B", "C", "D", "E", "F"})),
);
ToHideAndExcludeList = {"A", "D", "F"};
dt << Select Where(Contains(ToHideAndExcludeList, :Group));
sr = dt << Invert Row Selection;
sr << Hide and Exclude;
dt << Clear Select;
my_list = {"Current_I20_", "Voltage_CIB_", "Capacitance_DIFF_", "Resistance_FURR_"};
rows = dt << Get Rows Where(All(Contains(my_list, Word([1 2], :param, "_") || "_")) & !Excluded() & !Hidden());
vals = dt[rows, "param"];
Bearbeiten:
Oder ein Evaluierungsausdruck
rows = dt << Get Rows Where(Eval(EvalExpr((Contains(my_list, Expr(Word([1 2], :param, "_") || "_"))))) & !Excluded() & !Hidden());
Betreff: Wie verwende ich Select Where () mit Contains (), um Teilübereinstimmungen in der Datentabelle zu finden?Ja, kombinieren Sie mehrere Bedingungen mit And(), um Zeichenfolgen für Zeilen abzugleichen, die derzeit nicht ausgeblendet oder ausgeschlossen sind. Es gibt eine ausführliche Erklärung und viele Beispiele Hier .
Betreff: Wie verwende ich Select Where () mit Contains (), um Teilübereinstimmungen in der Datentabelle zu finden?@Mark_Bailey Fertig, ich erhalte keine Fehlermeldungen, aber es wird nichts in der Datentabelle ausgewählt.