word( ) 함수와 지정된 구분자를 사용한 혼동모두들 안녕,
열 이름을 조작하려고 합니다. 찾기/바꾸기로 한두번 하기는 매우 쉽지만 스크립팅을 해볼까 합니다.
기본적으로 열 이름을 "Singlets/Live leukocytes/Lymphocytes/B cells/A+B+C-,Freq. of Parent"에서 "로 변경하고 싶습니다. B 세포/A+B+C-,Freq. 부모의".
내 현재 코드는 다음과 같습니다.
dt = Current Data Table ();
colList = dt << get column names(string);
For ( i = 1, i <= N Items(colList), i++,
If (
contains(colList[i], "Singlets/Live leukocytes/Lymphocytes/"), <BR />
Column(dt, colList[i]) << set name (Word(2, colList[i], "Lymphocytes/"))
));
이 코드의 일부를 개별적으로 실행하면 다음과 같은 결과가 나타납니다.
코드 라인:
스크립트 로그 결과
colList[i]:
"Singlets/Live leukocytes/Lymphocytes/B cells/A+B+C-,Freq. of Parent"
contains(colList[i], "Singlets/Live leukocytes/Lymphocytes/"):
1
Word(2, colList[i], "Lymphocytes/"):
"iv"
Word(3, colList[i], "Lymphocytes/"):
" l"
Word(4, colList[i], "Lymphocytes/"):
"uk"
Word(9, colList[i], "Lymphocytes/"):
"f Par"
구분 기호가 예상대로 작동하지 않는 것이 분명합니다. 어떤 아이디어?
나는 원래 Words(4, colList[i], "/")를 시도했지만 그 직후에 또 다른 /가 있기 때문에 "B 셀"만 제공했습니다. 다른 프로그래밍 언어와 달리 JSL에서 '네 번째 단어를 지정하고 그 이후부터 끝까지'를 지정하는 방법이 있는지 모르겠습니다. 이것이 가능하지 않다고 생각하여 구분 기호를 변경하면 문제가 해결될 것이라고 생각했습니다.
조언 정말 감사합니다!!
Re: 단어( )함수와 지정된 구분자를 사용하여 혼동이 있습니다.오! 좋습니다. 스크립팅 가이드의 예제 중 하나가 훨씬 더 이해하기 쉽습니다!!
나는 결국 substr을 내 이점으로 사용했습니다! 점심 식사 후에 코드를 게시하겠습니다!
Re: 단어( )함수와 지정된 구분자를 사용하여 혼동이 있습니다.한 가지 혼란은 WORDS 함수에 대한 구분 기호 인수가 이러한 문자를 찾으면 이 텍스트를 분할한다는 의미입니다.
이 접근 방식을 사용하면 원하는 것에 더 가까워질 수 있습니다.
collist = {};
collist[1] = "Singlets/Live leukocytes/Lymphocytes/B cells/A+B+C-,Freq. of Parent";
collist[2] = "Singlets/Live leukocytes/Lymphocytes/Another Text";
collist[3] = "Singlets/Live leukocytes/Lymphocytes/Hello World";
remove_text = "Singlets/Live leukocytes/Lymphocytes/";
len_text = length(remove_text);
for (i = 1, i <= nitems(collist), i++,
start_pos = contains(colList[i], remove_text);
if (start_pos,
end_pos = start_pos + len_text;
new_name = substr(collist[i], end_pos);
show(new_name);
Column(dt, colList[i]) << set name (new_name);
);
);
Re: 단어( )함수와 지정된 구분자를 사용하여 혼동이 있습니다.구분 기호는 문자열이 아니라 문자입니다.
이 문제에서 유용한 정규식을 찾을 수도 있습니다.
Re: 단어( )함수와 지정된 구분자를 사용하여 혼동이 있습니다.N 항목( list )을 사용하여 얼마나 많은 수준이 존재하는지 확인하고 끝에서 항목을 가져옵니다.
Re: 단어( )함수와 지정된 구분자를 사용하여 혼동이 있습니다.또한 원래 코드가 작동하지 않는 이유를 아십니까?
Re: 단어( )함수와 지정된 구분자를 사용하여 혼동이 있습니다.목록 항목 수가 같지 않으면 어떻게 합니까? 이것은 list[4]||" "||list[5] 이지만 목록에 6개의 항목이 있고 끝까지 가려면...
N 항목을 통과하지만 아직 얻지 못한 일부 for 루프를 의사 코딩하려고 합니다.
Re: 단어( )함수와 지정된 구분자를 사용하여 혼동이 있습니다.도움말 > 스크립팅 인덱스 > 함수 > 문자 > 단어를 참조하십시오.
Re: 단어( )함수와 지정된 구분자를 사용하여 혼동이 있습니다.구분 기호로 "/"를 사용합니다. 또한 Words() 함수를 대신 사용하십시오. 당신은 목록을 얻을 것이다. 그런 다음 목록 항목을 연결할 수 있습니다. 이 경우 새 문자열은 list[5] || 목록[5].
아주 쉽죠?