#r
#r
Вопрос:
Как я должен удалить ненужные символы в переменной?
Козырный поезд ‘f0 «U’009F»U’009A»U’0082″f0 «U’009F»U’0087″U’00BA» f0 «U’009F»U’0087″U’00B8’
Должны отображаться только слова ‘The Trump Train’.
Комментарии:
1. «Я удаляю ненужные символы в переменной» Каковы здесь правила? Как вы определяете «нежелательные символы»? Вам нужно предоставить больше деталей и предпочтительно предоставить более одной строки (включая ожидаемый результат) для тестирования.
2. Повторяющийся набор
U
и шестнадцатеричных цифр предполагает, что это либо юникод, либо в какой-то момент был текст в юникоде. Если это unicode, вы могли бы изучитьiconv
(и многие вопросы по SO о unicode ссылаются на его использование). Если это буквенный текст, то, я думаю, вам нужно быть очень осторожным с регулярными выражениями здесь: сопоставлениеU
и четырех цифр (с одинарными кавычками или без них) прямолинейно, но каковыf0
случаи? Как вы генерируете эту строку таким образом, чтобы она выглядела так, как была, но больше не является юникодом?
Ответ №1:
Это действительно зависит от того, как выглядит остальная часть вашей переменной. В любом случае, регулярные выражения являются мощным инструментом для таких приложений.
Предположим, ваша переменная выглядит следующим образом.
x <- "The Trump Train 'f0''U'009F''U'009A''U'0082''f0''U'009F''U'0087''U'00BA''f0''U'009F''U'0087''U'00B8'"
Затем используйте это, gsub
чтобы удалить все, что начинается с 'f
, перед которым стоит пустой символ.
gsub("\s'f. ", "", x)
# "The Trump Train"
Обратите внимание, однако, что это не обязательно работает во всех случаях. Например. если значение равно "Trump's Train 'f0'...."
, результат будет "Trump"
таким, потому что есть более раннее '
, понимаете?
Так что примите это как ответ или улучшите свой пример.