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"
Другие вопросы по тегам