R 替换数据帧中的错误编码
如何将某个字符串(例如“Ô)的所有出现替换为其相应的特殊字符?(不幸的是,字符编码是错误的) 例如,我想将“ü”替换为“ü”,将“÷”替换为“ä”等。我可以使用以下代码来实现这一点,但如何将其应用于data.frame中的每一列?如何才能最有效地实现这一点R 替换数据帧中的错误编码,r,string,replace,encoding,gsub,R,String,Replace,Encoding,Gsub,如何将某个字符串(例如“Ô)的所有出现替换为其相应的特殊字符?(不幸的是,字符编码是错误的) 例如,我想将“ü”替换为“ü”,将“÷”替换为“ä”等。我可以使用以下代码来实现这一点,但如何将其应用于data.frame中的每一列?如何才能最有效地实现这一点 df$colum<-gsub("ü", "ü", daf$column) df$coln根据实际问题的不同,可能有几种方法: A: 如果您的原始数据(如csv文件等)看起来很好,而您只看到R中的错误编码,则应尝试使用
df$colum<-gsub("ü", "ü", daf$column)
df$coln根据实际问题的不同,可能有几种方法:
A:
如果您的原始数据(如csv文件等)看起来很好,而您只看到R中的错误编码,则应尝试使用正确的编码读取该文件-大多数读写器函数都会为此使用参数,UTF-8在大多数情况下都会工作。例如,您可以尝试read.csv(您的文件路径,fileEncoding='UTF-8'))
或类似内容(取决于您读取数据的方式。)
B:
数据实际上被破坏了(例如,以前有人把编码搞乱了,读错了不是你的错),现在你想手动修复它(只需几个字符,例如ä,ö,ü,ß)
然后,使用dplyr
软件包,您可以:
制作一个修复错误的函数:
my_fun正如注释一样,是否可以用不同的编码读取它?这会更容易参见rvest::repair_encoding
,它在一些情况下对我有帮助,但在这些特定示例中不起作用(尽管可能是因为它被复制并粘贴在这里,所以无论如何都要测试它)。这是正确的。Factors在levels
属性中为每个值和相应的字符串存储一个整数。对于Factors,您只需要更改levels
,而不将函数应用于每个值。如果您快速需要引入和引出因子,并且不关心速度,则可以执行:mutate\u If(is.factor、~as.factor(my_函数(as.character(.x)))