使用 word( ) 函數和指定分隔符的混淆大家好,
我正在嘗試操縱我的列名。 使用“查找/替換”執行一次或兩次非常容易,但我想編寫腳本。
本質上,我想將列名稱從“Singlets/Live leukocytes/Lymphocytes/B cells/A+B+C-,Freq. of Parent”更改為“ B 細胞/A+B+C-,頻率。父母”。
這是我當前的代碼:
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 中指定“第 4 個單詞,然後是所有內容,直到最後”。 我認為這是不可能的,所以我更改了分隔符,認為這可以解決我的問題。
非常感謝您的任何建議!
回复:混淆使用 word( ) 函數和指定的分隔符哦! 好的,這也使腳本指南中的示例之一變得更有意義!!
我最終使用 substr 對我有利! 我會在午餐後發布代碼!
回复:混淆使用 word( ) 函數和指定的分隔符一個混淆是 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);
);
);
回复:混淆使用 word( ) 函數和指定的分隔符分隔符是一個字符,而不是字符串。
您可能還會發現正則表達式在此問題中很有用。
回复:混淆使用 word( ) 函數和指定的分隔符使用 N Items( list ) 確定存在多少個級別並從末尾開始。
回复:混淆使用 word( ) 函數和指定的分隔符另外,您知道為什麼原始代碼不起作用嗎?
回复:混淆使用 word( ) 函數和指定的分隔符如果我的列表項數量不相等怎麼辦? 這將是 list[4]||" "||list[5] 但如果我的列表中有 6 個項目並且我希望它到最後......
我正在嘗試對一些遍歷 N 項但還沒有得到它的循環進行偽編碼。
回复:混淆使用 word( ) 函數和指定的分隔符請參閱幫助 > 腳本索引 > 函數 > 字符 > 單詞
回复:混淆使用 word( ) 函數和指定的分隔符使用“/”作為分隔符。 另外,改用 Words() 函數。 你會得到一份清單。 然後您可以連接列表項。 在這種情況下,新字符串將是 list[5] ||列表[5]。
很簡單,是嗎?