Re: RegEx가 있는 열에서 행을 선택하는 방법dt << select where(
Contains( :"Aligned_bin_on_ref(ref[+/-]strand:start-end"n, , "Insert" ) == 1
)
Re: RegEx가 있는 열에서 행을 선택하는 방법안녕하세요 짐,
나는 여전히 "'Aligned_bin_on_ref(ref[+/-]strand:start-end' , As Column/*###*/() 액세스 또는 평가에서 행 1의 해결되지 않은 열"이 표시됩니다.
오타가 아닌 경우를 대비하여 열 이름 뒤에 "n"이 있거나없는 솔루션을 시도했습니다.
BTW JMP 16.0.0을 사용하고 있습니다.
dt << select where(
Contains( :"Aligned_bin_on_ref(ref[+/-]strand:start-end", ,"Insert" ) == 1 );
Re: RegEx가 있는 열에서 행을 선택하는 방법Jim에게 대단히 감사합니다.누락 된 ")"괄호를 추가하면 매력처럼 작동합니다.이렇게 하면 몇 시간을 절약할 수 있습니다. 건배!
Re: RegEx가 있는 열에서 행을 선택하는 방법Contains(...)는 정말 흥미로운 기능입니다. 테스트 문자열이 소스 문자열의 어느 곳에서나 발견되면 true, 그렇지 않으면 false만 true 또는 false를 반환할 수 있는 것처럼 보입니다.
실제로 소스에서 테스트 문자열의 위치(처음 발생한 위치)를 반환하고 찾지 못하면 0을 반환합니다. 0은 거짓을 의미하고 0이 아닌 것은 참을 의미하므로 참/거짓 결과를 기대하면 Contains(...)가 제대로 작동합니다.
그러나 Jim의 예에서 볼 수 있듯이 첫 번째 발생 위치를 사용하여 시작 부분에 있는지 확인할 수 있습니다. 이것은 이 쉬운 테스트를 수행하기 위해 더 많은 기계를 회전시키는 regex(...)보다 더 효율적입니다.
포함하는 것이 더 읽기 쉽습니다. 원래 정규식 테스트는 다음과 같을 수 있습니다.
dt << select where( !Is Missing( Regex( dt:"Aligned_bin_on_ref(ref[+/-]strand:start-end)"n, "^Insert" ) ) );
regex(...)는 일치하지 않을 때 누락된 값을 반환하기 때문입니다.
두 경우 모두 주석은 코드를 유지 관리하는 다음 사람에게 도움이 됩니다. /* ==1로 시작 부분에 있는지 확인합니다. */ 또는 /* 정규 표현식이 ^ 시작 부분에 없으면 누락된 반환 */
편집: regex(...)=="Insert"도 작동하지만 누락된 값에 대한 비교는 true 또는 false를 반환하지 않으므로 피합니다.
Re: RegEx가 있는 열에서 행을 선택하는 방법친애하는 Craige, 훌륭한 JSL 수업에 대해 대단히 감사합니다!
대단히 감사합니다.
알프레도
Re: RegEx를 사용하여 열에서 행을 선택하는 방법JSL을 올바르게 복사하지 않았습니다.열 이름 뒤에 2개의 쉼표가 있고 후행 "n"이 없습니다.
dt << select where(
Contains( :"Aligned_bin_on_ref(ref[+/-]strand:start-end"n , "Insert" ) == 1
)
방금 내 코드에 2개의 쉼표가 있다는 것을 깨달았는데 이는 실수였습니다....내 항목을 수정했습니다.
RegEx를 사용하여 열에서 행을 선택하는 방법안녕하세요, "Aligned_bin_on_ref(ref[+/-]strand:start-end")라는 매우 복잡한 이름을 가진 열에서 "Insert"라는 단어로 시작하는 모든 행을 선택하고 싶습니다.다른 열 중 일부를 사용하여 행을 선택할 수 있지만 이 열의 이름은 어떻게든 "코드"로 해석됩니다.
또한 열의 "값"에 "Insert"라는 단어가 둘 이상 포함될 수 있고 "Insert"로 시작하는 항목만 선택하려고 하기 때문에 Regex를 사용하려고 합니다.
이것은 내가 주석 처리를 시도한 다른 코드와 함께 가지고 있는 기본 코드입니다. 첨부한 표 샘플입니다.
나는 어떤 포인터를 주셔서 감사합니다,
감사해요!
알프레도
//----------------- INITIALIZE ---------------
Names Default To Here( 1 );
dt = Current Data Table ();
dt << Clear Select;
//RefCol= "Aligned_bin_on_ref(ref[+/-]strand:start-end";
// dt << Select Where (:Name("Aligned_bin_on_ref(ref[+/-]strand:start-end"), "Insert" );
SelRows = dt << Get Rows Where (RegEx(As Column("Aligned_bin_on_ref(ref[+/-]strand:start-end") , "^Insert") == "Insert");<BR />
//InsertDepth = dt << Subset( (SelRows) );고급 통계 모델링소비자 및 시장 조사대량 맞춤화품질 및 프로세스 엔지니어링윈도우