R удалить специальные символы из фрейма данных
У меня есть матрица, которая содержит строку "Энергия на m". До того, как буква "m" представляет собой символ в форме ромба с вопросительным знаком, я не знаю, что это такое.
Я попытался избавиться от этого, используя это в столбце матрицы:
a=gsub('Energy per �m','',a)
[и используя copy/paste для первого члена gsub], но это не работает.[неожиданный символ в "a=rep(5,Energy per"]. Когда я пытаюсь извлечь что-то из исходной матрицы с помощью grepl, я получаю:
46: In grepl("ref. value", raw$parameter) :
input string 15318 is invalid in this locale
Как я могу избавиться от всех этих признаков? Я хотел бы иметь только 0-9, AZ, az, / и '. Остальные могут быть убиты.
2 ответа
Вероятно, есть лучший способ сделать это, чем с помощью регулярных выражений (например, путем изменения Encoding
).
Но вот ваше решение для регулярных выражений:
gsub("[^0-9A-Za-z///' ]", "", a)
[1] "Energy per m"
Но, как отмечает @JoshuaUlrich, вам лучше использовать:
gsub("[^[:alnum:]///' ]", "", x)
[1] "Energy per m"
str_replace_all()
вариант, если вы предпочитаете использоватьstringr
упаковка:
library(stringr)
x <- 'Energy per �m'
str_replace_all(x, "[^[:alnum:]///' ]", "")
[1] "Energy per m"