2012-08-07 12 views
6

Jak usunąć liczbę (jedną lub dwie cyfry w długości) i kropkę bezpośrednio przed nią za każdym razem, gdy występuje na końcu łańcucha w ramach określonej zmiennej w R? Przykład:Usuwanie kropki i liczby na końcu ciągu znaków

z<-c("awe", "p.56.red.45", "ted.5", "you.88.tom") 

Chcę tylko, aby usunąć .45 i .5.

Odpowiedz

16

Trzeba tylko prostego wyrażenia regularnego:

z_new = gsub("\\.[0-9]*$", "", z) 

Kilka Komentarze:

  1. Pierwszym argumentem gsub jest wzorem szukamy. Drugi argument polega na zastąpieniu go (w tym przypadku nic).
  2. Znak $ szuka wzoru na końcu łańcucha.
  3. [0-9]* wyszukuje 1 lub więcej cyfr. Alternatywnie możesz użyć \\d* lub [[:digit:]]*.
  4. \\. dopasowuje kropkę. Musimy uciec z pełnego postoju dwoma ukośnikami.
-1

Najlepszym sposobem na to jest ze zwykłym oświadczeniem zastępczej wypowiedzi. Sposób, w jaki to robisz, zależy od języka, którego używasz.

Oto wzór regex trzeba zidentyfikować numery spływu

(. \ D {1,2})^

I należy po prostu wymienić mecze z ""

Powiązane problemy