Как убрать косые черты из вектора в R? - PullRequest
1 голос
/ 10 июня 2019

У меня большой символьный вектор в R, который частично выглядит следующим образом:

VRMMs = c("201905031740 METAR KDCA 031740Z AUTO ///11KT 10SM SCT041 24/18 A3000 RMK T02400180 MADISHF")

Мне нужно удалить эти три последовательных косых черты из каждого наблюдения.Они не всегда находятся в одном и том же месте или в одном и том же контексте.Я пытался сделать это с stringr, но не повезло:

library(stringr)
VRMMs <- str_replace(VRMMs, "///", "")

Ответы [ 2 ]

4 голосов
/ 10 июня 2019

Мы могли бы использовать sub

sub("///", "", VRMMs)

#[1] "201905031740 METAR KDCA 031740Z AUTO 11KT 10SM SCT041 24/18 A3000 RMK T02400180 MADISHF"
2 голосов
/ 10 июня 2019

Мы можем поместить его в квадратную скобку

library(stringr)
str_replace(VRMMs, "[/]{3,}", "")
#[1] "201905031740 METAR KDCA 031740Z AUTO 11KT 10SM SCT041 24/18 A3000 RMK T02400180 MADISHF"

Кроме того, использование OP /// отлично работает с str_replace

str_replace(VRMMs, "///", "")
#[1] "201905031740 METAR KDCA 031740Z AUTO 11KT 10SM SCT041 24/18 A3000 RMK T02400180 MADISHF"

ПРИМЕЧАНИЕ: здесь используется ОП str_replace, а вопрос о str_replace


Если существует более одного экземпляра, мы можем использовать gsub в base R

gsub("[/]{3,}", "", VRMMs)
...