Заменить неправильные кодировки в кадре данных - PullRequest
0 голосов
/ 14 декабря 2018

Как я могу заменить все вхождения определенной строки (например, "ÃÅ") на соответствующий специальный символ? (К сожалению, неправильные кодировки).

Например, я хотел бы заменить"ü" от "ü", "ä" от "ä" и т. Д. Я могу сделать это с помощью следующего кода, но как я могу применить это к каждому столбцу в data.frame? И как я могу сделать это наиболее эффективно?

df$colum<-gsub("ü", "ü", daf$column)

Спасибо!

1 Ответ

0 голосов
/ 14 декабря 2018

Это может быть несколько способов, в зависимости от фактической проблемы:

A :

Если исходные данные (например, csv-файл и т. Д.)) выглядит хорошо, и вы видите только плохую кодировку в R, вы должны попытаться прочитать файл с правильной кодировкой - большинство функций чтения и записи принимают параметр для этого, и UTF-8 должен работать в большинстве случаев.Вы можете, например, попробовать read.csv(your_file_path, fileEncoding='UTF-8') или аналогичный (в зависимости от того, как вы читаете ваши данные.)

B :

Данные фактически повреждены (то есть кто-торанее испортили кодировку, и вы не виноваты в том, что прочитали ее неправильно), и теперь вы хотите исправить ее вручную (всего на пару символов, например, ä, ö, ü, ß.)

Затем, используяdplyr пакет, который вы могли бы:

  1. сделать функцию, которая исправляет ошибки:

    my_fun <- function(str){ str <- gsub("ü", "ü", str) str <- gsub("ä", "ä", str) < additional steps > str }

  2. Применитьэто к каждому символьному столбцу вашего фрейма данных:

df %>% mutate_if(is.character, my_function)

...