如何用 R 中的反斜杠替换符号?

How to replace a symbol by a backslash in R?

你能帮我用 R 中的反斜杠替换字符吗?我的试用:

gsub("D","\","1D2")

提前致谢

从键盘输入反斜杠时,始终将其转义:

gsub("D","\\","1D2")
#[1] "1\2"

或者,

gsub("D","\","1D2", fixed=TRUE)
#[1] "1\2"

或者,

library(stringr)
str_replace("1D2","D","\\")
#[1] "1\2"

注意: 如果你想要像 "1" 这样的输出,恐怕你不能在 R 中这样做(至少在我看来是这样)。您可以在路径名中使用正斜杠来避免这种情况。

有关更多信息,请参阅 R 帮助中提出的这个问题:How to replace double backslash with single backslash in R

gsub("\p{S}", "\\", text, perl=TRUE);

\p{S} ... 匹配 Unicode 类别符号中的一个字符。

您需要重新转义反斜杠,因为它需要作为普通 R 字符串的一部分转义一次(因此 '\' 而不是 '\'),并且 在另外在替换模式中被gsub处理的不一样,所以需要再次转义。以下作品:

gsub('D', '\\', '1D2')
# "1\2"

结果看起来与预期输出不同的原因是 R 实际上并没有打印结果,它打印了一个可解释的 R 字符串(注意周围的引号!)。但是如果你使用 catmessage 它打印正确:

cat(gsub('D', '\\', '1D2'), '\n')
# 1