Замена специального символа не работает с gsub - PullRequest
0 голосов
/ 09 мая 2019

У меня есть таблица со множеством строк, которые содержат некоторые странные символы, которые я хотел бы заменить на «оригинальные». Ä стал Ã, ö стал ¶, поэтому я заменяю каждое ¶ на ö в тексте. Это работает, однако, стал Ã , и я не могу его заменить ...

# Works just fine:
gsub('ö', 'REPLACED', "Testing string ö")


# this does not work
gsub("Ã<U+009F>", "REPLACED", "Testing string Ã<U+009F> ")

# this does not work as well...
gsub("â<U+0080><U+0093>", "REPLACED", "Testing string â<U+0080><U+0093> ")

Как мне сказать R заменить эти части буквой, которую я хочу вставить?

Ответы [ 2 ]

1 голос
/ 10 мая 2019

Поскольку существуют метасимволы (+ - для обозначения одного или нескольких), чтобы оценить его буквально, либо экранировать (как @boski упомянул в решении), либо использовать fixed = TRUE

sub("Ã<U+009F>", "REPLACED", "Testing string Ã<U+009F> ", fixed = TRUE)
#[1] "Testing string REPLACED "
0 голосов
/ 09 мая 2019

Вы должны экранировать символ +, так как это команда regex.

> gsub("Ã<U\\+009F>", "REPLACED", "Testing string Ã<U+009F> ")
[1] "Testing string REPLACED "

> gsub("â<U\\+0080><U\\+0093>", "REPLACED", "Testing string â<U+0080><U+0093> ")
[1] "Testing string REPLACED "
...