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"
我有一个带有特殊字符的数据框,如下所示
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"