Próbuję pozbyć się wszystkich liczb/znaków nadchodzących PO PIERWSZYM łączniku. oto kilka przykładów:Zapisuj tylko cyfry przed pierwszym łącznikiem ORAZ w łączniku
15-103025-01
800-40170-02
68-4974-01
My pożądane wyjście:
15-
800-
68-
Czytałem poprzez stanowiska takie jak:
- Using gsub to extract character string before white space in R
- truncate string from a certain character in R
- Truncating the end of a string in R after a character that can be present zero or more times
Ale nie są one tym, czego szukam, ponieważ metody wspomniane w tych pozbędą się również mojego łącznika (pozostawiając mi tylko pierwsze 2 lub 3 cyfry).
Oto, co starałem dotąd:
gsub(pattern = '[0-9]*-$', replacement = "", x = data$id)
grep(pattern = '[0-9]*-', replacement = "", x = data$id)
regexpr(pattern = '[0-9]*-', text = data$id)
ale naprawdę nie działa, jak się spodziewałem.
Jak o 'sub ("(<= -?). *"," ", x, perl = TRUE)', używając 'sub()' dla pierwszego wystąpienia '-',' (? <= -) 'dla pozytywnego lookbehind, aby zachować' -' i '. *' do usuń wszystko po nim. –
Witam @RichardScriven, możesz wyjaśnić nieco więcej, co oznacza każdy z komponentów? jak "(? <= -). *"? – alwaysaskingquestions
Odśwież, aby zobaczyć mój zaktualizowany mój komentarz –