Verwirrung bei der Verwendung der Funktion „word( )“ und des angegebenen TrennzeichensHallo alle,
Ich versuche, meine Spaltennamen zu manipulieren. Es ist sehr einfach, ein- oder zweimal mit Suchen/Ersetzen zu arbeiten, aber ich würde es gerne per Skript ausführen.
Im Wesentlichen möchte ich einen Spaltennamen von „Singuletts/Lebende Leukozyten/Lymphozyten/B-Zellen/A+B+C-,Freq. des Elternteils“ in „ ändern. B-Zellen/A+B+C-,Freq. des Elternteils".
Hier ist mein aktueller Code:
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/"))
));
Wenn ich Teile dieses Codes einzeln ausführe, erhalte ich Folgendes:
Codezeile:
Ergebnis im Skriptprotokoll
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"
Offensichtlich funktioniert mein Trennzeichen nicht so, wie ich es erwartet habe. Irgendwelche Ideen?
Ich habe ursprünglich versucht, Words(4, colList[i], „/“) zu machen, aber das hat mir nur „B-Zellen“ gegeben, da es unmittelbar danach ein weiteres / gibt. Im Gegensatz zu anderen Programmiersprachen weiß ich nicht, ob es in JSL eine Möglichkeit gibt, „4. Wort und dann alles danach bis zum Ende“ anzugeben. Ich glaube nicht, dass das möglich ist, also habe ich das Trennzeichen geändert, weil ich dachte, das würde mein Problem lösen.
Vielen Dank für jeden Rat!!
Betreff: Verwirrung bei der Verwendung der Funktion „word( )“ und dem angegebenen TrennzeichenOH! Okay, das macht auch eines der Beispiele im Skript-Guide VIEL sinnvoller!!
Am Ende habe ich substr zu meinem Vorteil genutzt! Ich gebe die Postleitzahl nach dem Mittagessen ein!
Betreff: Verwirrung bei der Verwendung der Funktion „word( )“ und dem angegebenen TrennzeichenEine Verwirrung besteht darin, dass das Trennzeichenargument der WORDS-Funktion bedeutet, dass dieser Text geteilt wird, wenn Sie EINES dieser Zeichen finden.
Mit diesem Ansatz kommen Sie Ihren Wünschen möglicherweise näher:
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);
);
);
Betreff: Verwirrung bei der Verwendung der Funktion „word( )“ und dem angegebenen TrennzeichenDas Trennzeichen ist ein Zeichen, keine Zeichenfolge.
Möglicherweise finden Sie bei diesem Problem auch reguläre Ausdrücke hilfreich.
Betreff: Verwirrung bei der Verwendung der Funktion „word( )“ und dem angegebenen TrennzeichenVerwenden Sie N Items(list), um zu bestimmen, wie viele Ebenen vorhanden sind, und nehmen Sie die vom Ende.
Betreff: Verwirrung bei der Verwendung der Funktion „word( )“ und dem angegebenen TrennzeichenWissen Sie auch, warum der Originalcode nicht funktioniert?
Betreff: Verwirrung bei der Verwendung der Funktion „word( )“ und dem angegebenen TrennzeichenWas passiert, wenn ich eine ungleiche Anzahl an Listenelementen habe? Dies wäre list[4]||" "||list[5], aber wenn ich 6 Elemente in meiner Liste habe und möchte, dass sie bis zum Ende geht ...
Ich versuche, einige For-Schleifen zu pseudokodieren, die über N Elemente gehen, habe es aber noch nicht verstanden.
Betreff: Verwirrung bei der Verwendung der Funktion „word( )“ und dem angegebenen TrennzeichenSiehe Hilfe > Skriptindex > Funktionen > Zeichen > Wörter
Betreff: Verwirrung bei der Verwendung der Funktion „word( )“ und dem angegebenen TrennzeichenVerwenden Sie „/“ als Trennzeichen. Verwenden Sie stattdessen auch die Funktion Words(). Sie erhalten eine Liste. Anschließend können Sie Listenelemente verketten. In diesem Fall lautet die neue Zeichenfolge list[5] || Liste[5].
Ziemlich einfach, oder?