避免 R 函数粘贴为引号生成反斜杠
Avoid R function paste generating backslash for quotes
我正在尝试将两个包含引号 ("") 的字符串合并为一个 character/string 向量或使用 R 函数粘贴,以便我可以将结果插入 [=13= 中 writeFormula 的参数 x ] 包裹。
一个例子是这样的
paste('HYPERLINK("file)',':///"&path!$C&TRIM(MID(CELL("filename",B',sep="")
我希望它能产生这样的结果
HYPERLINK("file:///"&path!$C&TRIM(MID(CELL("filename",B
但它实际上产生的结果是在 ":
前面加了一个反斜杠
[1] "HYPERLINK(\"file):///\"&path!$C&TRIM(MID(CELL(\"filename\",B"
我搜索了许多可能的解决方案,例如用 cat 或 替换粘贴,但输出不是字符向量。 toString 或 as.character 等函数可以将这些结果转换为字符串,但反斜杠也会返回。
非常感谢对此的任何帮助。谢谢。
p
中没有反斜杠。您看到的反斜杠正是 R 显示引号的方式(这样您就知道引号是字符串的一部分,而不是结束分隔符),但不在字符串本身中。
p <- paste0('HYPERLINK("file)', ':///"&path!$C&TRIM(MID(CELL("filename",B')
p
## [1] "HYPERLINK(\"file):///\"&path!$C&TRIM(MID(CELL(\"filename\",B"
# no backslashes are found in p
grepl("\", p, fixed = TRUE)
## [1] FALSE
noquote(p)
、cat(p, "\n")
或 writeLines(p)
可用于显示没有反斜杠转义的字符串:
noquote(p)
## [1] HYPERLINK("file):///"&path!$C&TRIM(MID(CELL("filename",B
cat(p, "\n")
## HYPERLINK("file):///"&path!$C&TRIM(MID(CELL("filename",B
writeLines(p)
## HYPERLINK("file):///"&path!$C&TRIM(MID(CELL("filename",B
可以看到各个字符由这样的空格分隔并且没有反斜杠:
do.call(cat, c(strsplit(p, ""), "\n"))
## H Y P E R L I N K ( " f i l e ) : / / / " & p a t h ! $ C $ 1 & T R I M ( M I D ( C E L L ( " f i l e n a m e " , B
这里的另一个例子 p2
包含一个双引号并且其中有一个字符,而不是 2:
p2 <- '"'
p2
## [1] "\""
nchar(p2)
## [1] 1
我正在尝试将两个包含引号 ("") 的字符串合并为一个 character/string 向量或使用 R 函数粘贴,以便我可以将结果插入 [=13= 中 writeFormula 的参数 x ] 包裹。
一个例子是这样的
paste('HYPERLINK("file)',':///"&path!$C&TRIM(MID(CELL("filename",B',sep="")
我希望它能产生这样的结果
HYPERLINK("file:///"&path!$C&TRIM(MID(CELL("filename",B
但它实际上产生的结果是在 ":
前面加了一个反斜杠[1] "HYPERLINK(\"file):///\"&path!$C&TRIM(MID(CELL(\"filename\",B"
我搜索了许多可能的解决方案,例如用 cat 或
非常感谢对此的任何帮助。谢谢。
p
中没有反斜杠。您看到的反斜杠正是 R 显示引号的方式(这样您就知道引号是字符串的一部分,而不是结束分隔符),但不在字符串本身中。
p <- paste0('HYPERLINK("file)', ':///"&path!$C&TRIM(MID(CELL("filename",B')
p
## [1] "HYPERLINK(\"file):///\"&path!$C&TRIM(MID(CELL(\"filename\",B"
# no backslashes are found in p
grepl("\", p, fixed = TRUE)
## [1] FALSE
noquote(p)
、cat(p, "\n")
或 writeLines(p)
可用于显示没有反斜杠转义的字符串:
noquote(p)
## [1] HYPERLINK("file):///"&path!$C&TRIM(MID(CELL("filename",B
cat(p, "\n")
## HYPERLINK("file):///"&path!$C&TRIM(MID(CELL("filename",B
writeLines(p)
## HYPERLINK("file):///"&path!$C&TRIM(MID(CELL("filename",B
可以看到各个字符由这样的空格分隔并且没有反斜杠:
do.call(cat, c(strsplit(p, ""), "\n"))
## H Y P E R L I N K ( " f i l e ) : / / / " & p a t h ! $ C $ 1 & T R I M ( M I D ( C E L L ( " f i l e n a m e " , B
这里的另一个例子 p2
包含一个双引号并且其中有一个字符,而不是 2:
p2 <- '"'
p2
## [1] "\""
nchar(p2)
## [1] 1