R:替换特殊字符

R: Replace Special Characters

我有一个带有特殊字符的数据框,如下所示

Key  Q1   Q2
22   aSk   aÃ…Â k
23   aSk   aÃ…Â k
24   aSk   aÃ…Â k

我想用 "aSk" 替换 Q2 中的 "Ã…Â k"(包括 k 之间的 space)以获得如下结果(与 Q1 相同)

Key  Q1   Q2 
22   aSk   aSk
23   aSk   aSk
24   aSk   aSk

我尝试在 R 中使用 gsub 函数

df$Q2 <- gsub("[Ã…Â]", "S", df$Q2) 

但我无法删除 "space" 并得到如下结果

Key  Q1   Q2 
22   aSk   aSSS k
23   aSk   aSSS k
24   aSk   aSSS k

我能知道我的代码有什么问题以及如何删除 R 中的 "space" 和 "SSS" 吗?

(我在 csv 中的原始文件中的实际单词是 "aÅ k"。但是,它在 R 中显示为 "aÃ…Â k")

谢谢。

我们可以匹配一个或多个不是alpbabets的字符并将其替换为"S"

df$Q2 <- sub("[^A-Za-z]+", "S", df$Q2)
df$Q2
#[1] "aSk" "aSk" "aSk"

或者我们只捕获字符串开头(*)的字母字符作为一组(([A-Za-z]*),匹配以下非字母字符并替换为反向引用捕获组的后跟 "S"

sub("^([A-Za-z]*)[^A-Za-z]+", "\1S", df$Q2)
#[1] "aSk" "aSk" "aSk"