Как я могу заменить "| ~ || ~ || ~ || ~ |" с пробелом в R? - PullRequest
0 голосов
/ 26 июня 2018

У меня есть какая-то подготовка данных, когда в конце строки "| ~ || ~ || ~ || ~ |" или "| ~ || ~ |" персонажи идут. Я не могу удалить его с помощью функций gsub () и str_replace (). Пожалуйста, совет.

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Проблема в том, что символ "|" это специальный или метасимвол, который регулярное выражение интерпретирует как объединение / или. Вы можете дважды указать его с помощью «\» или заставить регулярное выражение ожидать буквальный символ с «[|]».

Попробуйте это:

string <- "|~||~||~||~|somecharacters1234"
gsub("[|].*[|]","", string)

Результат:

 [1] "somecharacters1234"
0 голосов
/ 26 июня 2018

Просто нужно сбежать |, т.е. \\|:

string <- c("cat|~||~||~||~|", "mouse|~||~|", "dogg")
sub("\\|~.+$", "", string)
[1] "cat"   "mouse" "dogg" 

В качестве альтернативы вы можете указать fixed = TRUE:

gsub("|~|", "", string, fixed = TRUE)
[1] "cat"   "mouse" "dogg" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...