In sas, wie kann ich spezifisch das i-te Wort in einer Zeichenfolge ersetzen?So ersetzen Sie speziell das n-te Wort in einer Zeichenfolge in SAS
Lassen Sie uns sagen, dass ich eine Zeichenfolge wie dieses:
myString = 'aa cccc ddd aa aa 0.85645';
(= 6 Wörter), wo ich weiß nicht, die Länge jedes Wort, ich weiß nur, sie durch Leerzeichen getrennt sind.
wie kann ich ersetzen Sie den i-ten String mit etwas anderem wie
z.B. wenn i = 4 und ich möchte das Wort mit ‚bbbbb‘ ersetzen:
myNewString = 'aa cccc ddd bbbbb aa 0.85645';
ich für eine Funktion bin auf der Suche, die eine Art von einer Kombination aus scan(myString,4,' ')
und tranwrd
wäre.
Das Problem hier ist, dass ich sie nicht kombinieren kann, weil das erste Wort dasselbe und das vierte Wort sein kann, und deshalb kann ich nicht spezifisch ein tranwrd auf dem 4. Wort zielen. Ich kann find() auch nicht aus dem gleichen Grund verwenden.
Kühl. Anmerkung mit l für die Länge macht den Code ein wenig schwer zu lesen, da 'p + l' viel wie' p + 1' aussieht. :) – Tom
Ja, aber wenn ich die Frage verstehe, kann man die Länge der Zeichenfolge vorher nicht wissen. Also, wir kennen den Wert von p und l nicht, weil er sich ändern kann. Also bevorzuge ich die Antwort von user667489. –
@ D.O. Die Werte von P und L sind, was CALL SCAN zurückgibt. –