데이터 테이블에서 부분 일치를 찾기 위해 Select Where()를 Contains()와 함께 사용하는 방법은 무엇입니까?목록이 있어요
myParaList = {Current_I20_, Voltage_CIB_, Capacitance_DIFF_, Resistance_FURR_};여러 행이 있는 Parameter라는 하나의 열이 있는 데이터 테이블. 그 중 일부에는 다음과 같은 항목이 있습니다.
Current_I20_Stage2
Voltage_CIB_Stage3
Capacitance_DIFF_corner_Stage1
Resistance_FURR__side_Stage3
사용 나의 목록 ~와 함께 포함() 데이터 테이블의 전체 매개변수 이름을 목록으로 추출합니다. JSL을 통해 이를 수행하는 방법은 무엇입니까?
우선 다음은 내 데이터 테이블에서 아무것도 선택하지 않습니다. 내가 어디로 잘못 가고 있습니까?
dt<< select where(Contains(mylist, As column (Parameter)));
자동화 및 스크립팅윈도우Re: Contains()와 함께 Select Where()를 사용하여 데이터 테이블에서 부분 일치를 찾는 방법은 무엇입니까?함수 호출의 닫는 괄호 뒤에 빈 대괄호를 추가해 보세요.
dt<< select where(Contains(mylist, As column (Parameter)[]));
Re: Contains()와 함께 Select Where()를 사용하여 데이터 테이블에서 부분 일치를 찾는 방법은 무엇입니까?목록과 함께 포함을 사용할 때는 전체 일치가 필요합니다. Word()를 사용하여 데이터 테이블 값을 목록과 동일한 형식으로 만든 다음 포함을 사용할 수 있습니다(또한 목록을 문자열 목록으로 변환).
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">Re: Contains()와 함께 Select Where()를 사용하여 데이터 테이블에서 부분 일치를 찾는 방법은 무엇입니까?</LINGO-SUB><LINGO-BODY id="lingo-body-710241" slang="en-US" mode="NONE"><P>부분 일치 항목을 찾을 때 수행하는 작업은 다음과 같습니다.</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);
);
Re: Contains()와 함께 Select Where()를 사용하여 데이터 테이블에서 부분 일치를 찾는 방법은 무엇입니까?@jthi 이것은 작동하지만 데이터 테이블의 숨겨진 행과 제외된 행을 존중하지 않는 것 같습니다. dt .
내 데이터 테이블의 다른 열을 기반으로 일부 행을 제외하고 싶습니다. 아마도 이 작업은 이내에 완료될 수 있습니다. 행 가져오기() ?
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"];Re: Contains()와 함께 Select Where()를 사용하여 데이터 테이블에서 부분 일치를 찾는 방법은 무엇입니까?행 상태를 다른 조건으로 포함할 수 있습니다.
Re: Contains()와 함께 Select Where()를 사용하여 데이터 테이블에서 부분 일치를 찾는 방법은 무엇입니까?@마크_베일리 감사해요. 포함된 행 상태를 사용한다는 뜻입니까? 예를 들어 주시겠어요?
Re: Contains()와 함께 Select Where()를 사용하여 데이터 테이블에서 부분 일치를 찾는 방법은 무엇입니까?이것은 작동합니다.
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"];Re: Contains()와 함께 Select Where()를 사용하여 데이터 테이블에서 부분 일치를 찾는 방법은 무엇입니까?@mmarchandTSI 많은 감사를 드립니다. 이것은 효과가 있지만 행 상태로 필터링할 수 있는 접근 방식을 선호했습니다( @마크_베일리 제안) 아래 ()을 포함합니다 . 이렇게 하면 데이터 테이블 조작을 피할 수 있습니다.
Re: Contains()와 함께 Select Where()를 사용하여 데이터 테이블에서 부분 일치를 찾는 방법은 무엇입니까?!Excluded() 및 !Hidden()을 사용할 수 있지만 Contains()는 이 경우 재미있는 작업을 수행하는 것 같으므로 이를 관리해야 합니다. All()은 이 경우 작동하는 것 같습니다.
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"];
편집하다:
아니면 일부 평가 표현식
rows = dt << Get Rows Where(Eval(EvalExpr((Contains(my_list, Expr(Word([1 2], :param, "_") || "_"))))) & !Excluded() & !Hidden());
Re: Contains()와 함께 Select Where()를 사용하여 데이터 테이블에서 부분 일치를 찾는 방법은 무엇입니까?예, 여러 조건을 And()와 결합하여 현재 숨겨지거나 제외되지 않은 행의 문자열을 일치시킵니다. 완전한 설명과 풍부한 예가 있습니다. 여기 .
Re: Contains()와 함께 Select Where()를 사용하여 데이터 테이블에서 부분 일치를 찾는 방법은 무엇입니까?@마크_베일리 완료되었습니다. 오류는 발생하지 않지만 데이터 테이블에서는 아무 것도 선택되지 않습니다.