Заменить строку, содержащую (0-100), а затем слова - PullRequest
1 голос
/ 10 июля 2019

Я работаю с некоторыми данными по играм для футбола в колледже, и несколько пьес имеют другой синтаксис, чем остальные. Чтобы обойти это, мне нужно сделать замену. Например, мне нужно включить следующую строку:

"Justin Thomas 13 Yd Run (Jim Delaney Kick)"

до:

"Justin Thomas run (Jim Delaney Kick)"

Я немного новичок в использовании всего содержимого regex, и не могу понять, как его зафиксировать, так как число, предшествующее "Yd Run", может быть любым от 0 до 100.

Я пробовал несколько разных комбинаций, обычно выглядящих примерно так:

gsub("[0-100]\\sYd Run","run ", "Justin Thomas 13 Yd Run (Jim Delaney Kick)")

Но я просто продолжаю получать ту же строку обратно. И поскольку я не совсем понимаю «регулярное выражение», ответы, которые я видел на подобные вопросы, не помогли. Я пытаюсь сопоставить образец, но некоторые вещи, кажется, не переносятся, или я не совсем понимаю, что означает каждый персонаж.

Ответы [ 2 ]

2 голосов
/ 10 июля 2019
gsub("[0-9]+ Yd Run","run","Justin Thomas 13 Yd Run (Jim Delaney Kick)")
# [1] "Justin Thomas run (Jim Delaney Kick)"

Вы должны захватить цифру от 0 до 9 один или несколько раз (+)

0 голосов
/ 10 июля 2019

Вы также можете использовать stringr

library(stringr)

string <- "Justin Thomas 13 Yd Run (Jim Delaney Kick)"

str_replace_all(string, " [:digit:]+ [:alpha:]+", "")

# [1] "Justin Thomas Run (Jim Delaney Kick)"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...