Wie ich im Kommentar gesagt habe, können Sie substr
verwenden, um den Anfang der Zeichenfolge zu extrahieren, wenn Sie immer das gleiche Muster (die gleiche Anzahl an Ziffern) haben. Sie können weiter den Raum zu unterdrücken, wenn Sie wollen:
substr(a, 1, 7)
[1] "Rs. 360" "Rs. 213" "Rs. 430"
sub(" ", "", substr(a, 1, 7))
[1] "Rs.360" "Rs.213" "Rs.430"
Oder Sie können erfassen das Muster, das Sie in der Zeichenfolge wollen und mit nur, dass eine andere Zeichenfolge bilden:
gsub("^[A-Za-z.]{3} (\\d{3}).+", "Rs.\\1", a)
[1] "Rs.360" "Rs.213" "Rs.430"
hier nur Sie erfassen die 3 Ziffern und setzen explizit die Rs.
zurück.
Oder Sie können „löschen“ alles, was Sie nicht wollen: den Raum und alles, was nach dem Muster kommt Sie behalten möchten:
gsub("(\\s)|([A-Za-z0-9. ]{8}\\s\\[-*\\d+%\\s*\\])", "", a)
[1] "Rs.360" "Rs.213" "Rs.430"
Hier geben Sie Ihnen den Raum zu unterdrücken wollen (\\s
) und/oder 8 Zeichen, die entweder alphanumerisch oder ein Punkt oder ein Leerzeichen sind, gefolgt von einem Leerzeichen, einer öffnenden Klammer, nichts oder einem Minuszeichen, mehr als einer Ziffer, einem% -Zeichen, nichts oder einem Leerzeichen und endlich eine schließende Klammer.
'substr (a, 1, 7)' oder um den Raum 'gsub ("^(Rs.) (\\ d {3}). + "," \\ 1 \\ 2 " a) ' – Cath
Ist' Rs.' immer eine feste Zeichenfolge am Anfang? Gibt es immer 3-stellige Zahlen danach? –