替换数据帧中的错误编码

时间:2018-12-14 12:07:55

标签: r string replace encoding gsub

如何用对应的特殊字符替换某个字符串(例如“ÃŔ)的所有出现?(不幸的是,字符编码错误)。

例如,我想用“ü”替换“ü”,用“ä”替换“䤔等。我可以使用以下代码来做到这一点,但是如何将其应用于数据中的每一列。帧?我如何最有效地做到这一点?

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

谢谢!

1 个答案:

答案 0 :(得分:1)

根据实际问题,可能有几种解决方法:

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)