首页 > 解决方案 > tidyverse:替换字符串中的特殊字符

问题描述

我想_\_字符串替换。

Test <- 
  c(".model", "sigma2", "log_lik", "AIC", "AICc", "BIC", "ar_roots", 
"ma_roots")

library(stringr)

Test %>% 
  str_replace_all(string = ., pattern = "_", replacement = "\_")

Error: '\_' is an unrecognized escape in character string starting ""\_"

有什么提示吗?

标签: rtidyversestringr

解决方案


您可以使用 -

stringr::str_replace_all(Test, pattern = "_", replacement = "\\\\_")

#[1] ".model"     "sigma2"     "log\\_lik"  "AIC"     "AICc"       "BIC"       
#[7] "ar\\_roots" "ma\\_roots"

当打印\被另一个转义时\,你会看到两个反斜杠。查看实际的字符串使用cat

cat(stringr::str_replace_all(Test, pattern = "_", replacement = "\\\\_"))

#.model sigma2 log\_lik AIC AICc BIC ar\_roots ma\_roots

或与gsub-

gsub("_", "\\\\_", Test)

推荐阅读